python pandas 对每列求和时少了一列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python pandas 对每列求和时少了一列相关的知识,希望对你有一定的参考价值。
命令如下:
df = pd.read_excel('top8.xlsx')
df
显示如下
a b c d e f g custom product
0 429.60 19.87 32.2 17.12931 27.75 20 429.6 1 1
1 429.60 19.87 32.2 17.12931 27.75 20 429.6 1 2
2 214.80 19.87 16.1 17.12931 13.88 10 214.8 1 1
3 1,074.00 19.87 80.5 17.12931 69.39 50 1074.0 1 2
4 214.80 19.87 16.1 17.12931 13.88 10 214.8 2 1
5 429.60 19.87 32.2 17.12931 27.75 20 429.6 2 2
6 1,074.00 19.87 80.5 17.12931 69.39 50 1074.0 2 1
7 429.60 19.87 32.2 17.12931 27.75 20 429.6 2 2
要对custom和product作为键对a-g列求和
命令如下:
df.groupby(['custom','product']).sum()
显示如下:
b c d e f g
custom product
1 1 39.74 48.3 34.25862 41.63 30 644.4
2 39.74 112.7 34.25862 97.14 70 1503.6
2 1 39.74 96.6 34.25862 83.27 60 1288.8
2 39.74 64.4 34.25862 55.50 40 859.2
结果中没有对a列求和,怎么解决?
我尝试单独对a列求和
df.groupby(['custom','product'])[['a']].sum()
输出如下:
a
custom product
1 1 429.60214.80
2 429.601,074.00
2 1 214.801,074.00
2 429.60429.60
pandas把a列结果直接连接起来了,怎么解决?
当 groupby 后面带上 a 列时 pandas 会把求和的字符串连接起来
所以解决这个问题只需要将 a 列转换成 float 就可以
求和,求平均数
1 import pandas 2 excel=pandas.read_excel(r‘F:pandas练习成绩.xlsx‘,index_col=‘id‘,sheet_name=‘Sheet1‘) 3 temp=excel[[‘score1‘,‘score2‘]] 4 5 row_sum=temp.sum(axis=1) #默认axis=0,对每一列进行求和 6 row_mean=temp.mean(axis=1) 7 8 excel[‘total‘]=row_sum 9 excel[‘average‘]=row_mean 10 11 col_mean=excel[[‘score1‘,‘score2‘,‘total‘,‘average‘]].mean() #对每一列进行求平均值 12 col_mean[‘name‘]=‘summary‘ 13 excel=excel.append(col_mean,ignore_index=True) #在excel表的最后再增加一行 14 print(excel)
以上是关于python pandas 对每列求和时少了一列的主要内容,如果未能解决你的问题,请参考以下文章