我遇到了问题:
我有一个表,其中有很多这样的行和列(只是更多的行和列):
比萨消费:
df =
+------------------------------------------------------+
| Name Day 1 | Day 2 | Day 3 | Day 4 |Day 5|
+------------------------------------------------------+
| Michelangelo | 1 | 5 | 2 | 1 | 5 |
| Michelangelo | 4 | 2 | 3 | 1 | 5 |
| Donatello | 2 | 1 | 1 | 8 | 2 |
| Leonardo | 3 | 2 | 4 | 2 | 1 |
| Michelangelo | 3 | 1 | 2 | 1 | 5 |
| Raphael | 2 | 2 | 3 | 1 | 3 |
| Michelangelo | 4 | 3 | 1 | 1 | 5 |
+------------------------------------------------------+
我想得到一张表格,其中包含每只乌龟的每日总数:
df_total =
+-------------------------------------------------------+
| Name Day 1 | Day 2 | Day 3 | Day 4 | Day 5|
+-------------------------------------------------------+
| Michelangelo | 13 | 11 | 8 | 4 | 20 |
| Donatello | 2 | 1 | 1 | 8 | 2 |
| Leonardo | 3 | 2 | 4 | 2 | 1 |
| Raphael | 2 | 2 | 3 | 1 | 3 |
+-------------------------------------------------------+
由于我不希望名称成为索引,所以我尝试过尝试(在许多其他方法中):
df_total = df.groupby(['Name'], axis = 0).sum().reset_index()
我得到了一个汇总行,所选内容中的每个字段在该行的每一列中都加了一个大和。米开朗基罗每天要吃56个披萨。
感谢您的关注!
答案 0 :(得分:0)
只需使用不带参数pd.DataFrame.groupby.sum
的{{1}}(按行):
axis=0
输出:
df=df.groupby('Name',as_index=False).sum()
IIUC,您可以使用df
Name Day 1 Day 2 Day 3 Day 4 Day 5
0 Donatello 2 1 1 8 2
1 Leonardo 3 2 4 2 1
2 Michelangelo 12 11 8 4 20
3 Raphael 2 2 3 1 3
来获取每一行的总和(pd.DataFrame.sum
):
axis=1
输出:
df['total']=df.sum(axis=1)
答案 1 :(得分:-1)
尝试一下,df.groupby(['Name'], as_index=False).sum()