版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29027865/article/details/83932710
一.前言
数模结果已出,如果你在了解自己成绩的同时,也想了解下同校别人的成绩,或者还想再了解下别校获奖的情况。靠一个个ctrl+f查,不如利用pandas来实现下
二.流程图
三.实现
- 按行统计
df1 = df[['队长所在单位','奖项','序号']].groupby(['队长所在单位','奖项']).count()
df1 = df1.rename(columns={'序号':'个数'})
结果显示如下:
2. 按列统计
def data_sta(df,name1):
df_test = df[df['奖项'] ==str(name1)]
df_test = df_test[['队长所在单位','序号']].groupby(['队长所在单位']).count()
df_test = df_test.rename(columns={'序号':str(name1)})
return df_test
#使用外连接进行连接
def merge_all(df1,df2,df3,df4):
df_merge = df1.merge(df2,on='队长所在单位').\
merge(df3,how='outer',on='队长所在单位').\
merge(df4,how='outer',on='队长所在单位')
return df_merge
if __name__ == '__main__':
df= pd.read_excel("2018年最终获奖名单_C题.xls")
df1 = data_sta(df,'一等奖')
df2 = data_sta(df,'二等奖')
df3 = data_sta(df,'三等奖')
df4 = data_sta(df,'成功参与奖')
df_merge = merge_all(df1,df2,df3,df4)
结果如下:
其中一些方法可以参考:
pandas操作总结
pandas进阶
实现的代码还待优化改进:
- 封装函数可以再用for循环改进;
- 实现的只为c题的读入,可以一次性读入多个文件,汇总为一份数据;
- 增加保存选项
时间有限,后续补上,欢迎一起交流拍砖