使用pandas模块进行排序、筛选、求和、计数
使用python编辑excel,实现的功能包括:python设置当前路径、使用pandas打开excel、生成数据透视表,在不覆盖原内容的基础上追加写入数据、对透视表的内容进行排序、按条件筛选、求和、计数。
##python使用好了,可以帮助减轻很多重复性的工作,解放双手和大脑,为了更好地温故知新,在此记下今晚用过的知识点。
设置当前路径
os.chdir('path') #path为希望设置的路径
使用pandas打开表格
social_sec=pd.read_excel('excel工作簿名称.文件格式','sheet页名称')
筛选不为0 的数据
soc_sec=social_sec[social_sec['X']!=0] #格式为df=df[df['行索引'!=0],其中X为举例示范,下同
对某类数据进行汇总求和生成透视表
#格式为df=df.pivot_table(df,index=['x'],values=['x'],aggfunc=[np.sum])
social=pd.pivot_table(soc_sec,index=['xx'],values=['XX'],aggfunc=[np.sum])
对excel数据根据某列进行升序排列
#格式为df=df.sort_values(by='x',ascending=False)
provident_Ascending=provident.sort_values(by="x" , ascending=False)
对excel某列数据不重复计数
#格式为 df=df['x'].nunique()其中nunique表示不重复计数,x为该列所对应的行索引
social_less_count=social_less['x'].nunique()
对excel某列数据求和
#格式为df=df['x'].sum()
social_less_amount=social_less['x'].sum()
追加写入excel sheet页
with pd.ExcelWriter('文件名.xlsx', mode='a', engine='openpyxl') as writer:
df.to_excel(writer,sheet_name="x")
writer.save()
今晚碰到的问题:
1.pandas生成透视表后,伴随着多重索引,不知道如何直接重置行索引,目前的方法将透视表保存到excel后,使用openpyxl模块删除第一、第二行,再在新的第一行写入行索引。
以上为学习过程中在网上获取的知识,自己做个总结,希望对大家有帮助。
原文链接:/xiaoxuvxue/article/details/108557944