如何在 pandas 中制作行总和数据框?
how to make row sum data frame in pandas?
我有如下数据框
我想做一个新的数据框
和 a、b、c、d 列值是字符串。
name a b c d
aa. 10,000 1,000 1,000 1,000
bb. 10,000 1,000 1,000 1,000
cc. 10,000 1,000 1,000 1,000
dd. 10,000 1,000 1,000 1,000
ee. 10,000 1,000 1,000 1,000
ff. 10,000 1,000 1,000 1,000
gg. 10,000 1,000 1,000 1,000
例如,新的行和数据框应如下所示
sum 70,000 70,000 70,000 70,000
我尝试使用 df.sumO() 但得到了一个对象类型。但是我需要
数据框是 sum 70,000 70,000 70,000 70,000
所以我在这里提问。提前谢谢你!
您可以对所有列使用 sum
,然后将 sum
值设置为 name
列的最后一个值:
i = len(df)
df.loc[i] = df.sum()
df.loc[i, 'name'] = 'sum'
print (df)
name a b c d
0 aa. 1 1 1 1
1 bb. 1 0 0 1
2 cc. 3 4 4 4
3 dd. 2 2 2 2
4 ee. 1 1 1 1
5 ff. 1 1 1 1
6 gg. 1 1 1 1
7 sum 10 10 10 11
编辑:如果可能的列是非数字的,则对没有第一个的所有列使用to_numeric
,获取总和并将name
值添加到Series
,最后分配新行:
s = df.iloc[:, 1:].apply(pd.to_numeric, errors='coerce').sum()
s.loc['name'] = 'sum'
df.loc[len(df)] = s
print (df)
name a b c d
0 aa. 1 1 1 1
1 bb. 1 0 0 1
2 cc. 3 4 4 4
3 dd. 2 2 2 2
4 ee. 1 1 1 1
5 ff. 1 1 1 1
6 gg. 1 1 1 1
7 sum 10 10 10 11
我有如下数据框 我想做一个新的数据框 和 a、b、c、d 列值是字符串。
name a b c d
aa. 10,000 1,000 1,000 1,000
bb. 10,000 1,000 1,000 1,000
cc. 10,000 1,000 1,000 1,000
dd. 10,000 1,000 1,000 1,000
ee. 10,000 1,000 1,000 1,000
ff. 10,000 1,000 1,000 1,000
gg. 10,000 1,000 1,000 1,000
例如,新的行和数据框应如下所示
sum 70,000 70,000 70,000 70,000
我尝试使用 df.sumO() 但得到了一个对象类型。但是我需要 数据框是 sum 70,000 70,000 70,000 70,000
所以我在这里提问。提前谢谢你!
您可以对所有列使用 sum
,然后将 sum
值设置为 name
列的最后一个值:
i = len(df)
df.loc[i] = df.sum()
df.loc[i, 'name'] = 'sum'
print (df)
name a b c d
0 aa. 1 1 1 1
1 bb. 1 0 0 1
2 cc. 3 4 4 4
3 dd. 2 2 2 2
4 ee. 1 1 1 1
5 ff. 1 1 1 1
6 gg. 1 1 1 1
7 sum 10 10 10 11
编辑:如果可能的列是非数字的,则对没有第一个的所有列使用to_numeric
,获取总和并将name
值添加到Series
,最后分配新行:
s = df.iloc[:, 1:].apply(pd.to_numeric, errors='coerce').sum()
s.loc['name'] = 'sum'
df.loc[len(df)] = s
print (df)
name a b c d
0 aa. 1 1 1 1
1 bb. 1 0 0 1
2 cc. 3 4 4 4
3 dd. 2 2 2 2
4 ee. 1 1 1 1
5 ff. 1 1 1 1
6 gg. 1 1 1 1
7 sum 10 10 10 11