最近 写了一个脚本处理excel,发现pandas处理数据的时候真的很强大,
首先 导入pandas库
import pandas
# 导入文件
data = pandas.read_excel('***.xlsx')
# df是一个dataform对象,类似一个二维表格
df = pandas.DataFrame(data)
printf(df)
# 显示结果是
a_ b_ c_ d_
0 1 2 3 4
1 5 6 7 8
2 1 2 3 4
3 10 3 4 5
对excel 重命名第一行,就是标题,
df.columns = ['a','b','c','d']
a b c d
0 1 2 3 4
1 5 6 7 8
2 1 2 3 4
3 10 3 4 5
增加列
# 在最后增加一列数据e 全为add
# 这里如果是[1:2,"e"] = 'add' 就是在最后一列第二行到第三行增加add
df.loc[:,"e"] = "add"
# 在a后面复制a的这一列 并且命名为name, 1表示在第一列插入
df.insert(1, 'name', df['a'])
# 在第二列插入数据 'aa', 名字为name
df.insert(2,'name,'aa')
修改列
# 删除一列, 和多列, 和行
# inplace表示将修改的数据 是否保存, axis表示1列,默认是1行
# df.drop('a',axis=1,inplace=True)
# 删除多列
df.drop(['a', 'b'], axis=1, inplace=True)
将表中的数据进行替换
# 这一个中显示df还是原来的值,因为,replace默认会返回一个替换后的值,
# 可以用df=df['a'].replace(1, 100)
# 或者加个参数inplace=True
# df['a'].replace(1, 100)
# 将a这一列中的1全部替换成100,并保存, 不加后面的参数,会返回一个修改后的对象,
df['a'].replace(1, 100, inplace=True)
# 将所有的3替换成300
df.replace(3, 300, inplace=True)
# 替换 指定列, replace 里面可以是一个字典集合
df.replace({'b':{2: '男', 100:'女'}, 'c':{2:'男', 300:'女'}}, inplace=True)
修改一行的数据,为连续的流水号
产生流水号为0001, 到0099
for i in range(10001, 10100):
i = str(i)[1:]
print(i)
# 在某一列插入连续数据
# pandas的索引函数主要有三种:
# loc 标签索引,行和列的名称
# iloc 整型索引(绝对位置索引),绝对意义上的几行几列,起始索引为0
# ix 是 iloc 和 loc的合体
# at是loc的快捷方式
# iat是iloc的快捷方式
j = 0
for i in range(1, 10)
df.iloc[j, 0] = i
j+1
查看行数和列数
df.columns.size#列数
df.iloc[:,0].size#行数
保存文件
df.to_excel("../new_excel.xlsx", sheet_name="01", index=False, header=True)
推荐pandas文档
https://www.cnblogs.com/prpl/p/5537417.html
http://pandas.pydata.org/pandas-docs/stable/whatsnew.html
https://blog.csdn.net/liufang0001/article/details/77856255
在线阅读:https://apachecn.github.io/pandas-doc-zh/
Github:https://github.com/apachecn/pandas-doc-zh
参考文章
https://blog.csdn.net/qq_33399185/article/details/60872853
https://blog.csdn.net/claroja/article/details/65661826
https://blog.csdn.net/yoonhee/article/details/76168253