我经历了无数示例,将“总计”行放在数据帧的末尾。我只是想知道为什么下面的方法不能起作用:
import pandas as pd
dict = {
'a' : [1,2 ,3, 4, 5],
'b' : [3, 5, 7, 9, 10]
}
df = pd.DataFrame(dict)
# print(df)
def func(x):
x['sum'] = x.sum()
df2 = df.apply(lambda x: func(x), axis=0)
print(df2)
在这种情况下,x始终是一个包含整列的Series,我要附加一个名为sum的索引。请指导。
编辑:如果我们可以用axis = 1来计算总和,那么为什么不能使用axis = 0来计算总和。
答案 0 :(得分:1)
函数中缺少return x
:
def func(x):
x['sum'] = x.sum()
return x
df2 = df.apply(lambda x: func(x), axis=0)
print(df2)
a b
0 1 3
1 2 5
2 3 7
3 4 9
4 5 10
sum 15 34
但最简单的是使用setting with enlargement
:
df.loc['sum'] = df.sum()