python pandas数据分析库和numpy使用
import pandas
import numpy
# 读excel
main():
xls = pandas.ExcelFile(ordersFile)
df= pandas.read_excel(xls, 'sheet1') # 读取dataframe
# 写excel
with pandas.ExcelWriter('./订单清洗后数据.xlsx') as writer:
df.to_excel(writer, sheet_name='sheet1', index=None) #默认会写入index, 建议不写入index
# 根据3列后数据去重
df = df.drop_duplicates(sheet.columns[3:])
# 删除0列和指定名称列
df = df.drop([df.columns[0], '文件名'], axis=1)
# 返回某一列(sheet名)的哪些行包含指定内容
df.Sheet名.str.contains('作废')
# 计算True的数量
numpy.sum(dfall['Sheet名'].str.contains('作废')!=0)
# 删除包含指定字符的行
dfall[ ~dfall['Sheet名'].str.contains('作废') ]
# 插入列
df.insert(index数值表示的位置, '列名', 数组)
# 直接数组方式插入
df['新列名'] = [1,2,3,4]
# 直接数组方式修改
df['旧列名'] = [1,2,3,4]
# 遍历并修改行内数值
for i in range(len(df)):
index = df.index[i] #实际index和数组序号不同
df.loc[index, '某列名'] = '新数值' + df.某某列名[index] # 必须使用loc修改,但可以直接使用"."读取
# 列名相同的简单合并
df = df.append(otherdf)
# 相同内容填充数组
arr = numpy.full((3), 'a') # 填充一元数组
arr = numpy.full((3,2), 'a') # 填充二元数组
# 将第1列NaN替换掉的四种方式, 有时候会报错`A value is trying to be set on a copy of a slice from a DataFrame`, 有时候不会, 还不知道怎么解决.
df[1].fillna(0, inplace=True)
df[['a', 'b']] = df[['a','b']].fillna(value=0)
df.fillna({'a':0,'b':0})
df=df.fillna({'a':0,'b':0})
# 连接多个df后, index重复需要做index重置
df=df.reset_index(drop=True)
# 修改指定的columns名称
df.rename(columns={'$a': 'a', '$b': 'b', '$c': 'c', '$d': 'd', '$e': 'e'}, inplace=True)
数据合并
数据合并比较多样,看这儿https://www.cnblogs.com/guxh/p/9451532.html
使用第2行作为header(从0起算,序号为1)
sheet = pandas.read_excel(fileName, sheetName, header=1)