大家好,如何使用pandas对多行数据求和,数据是excel格式,并且只对edwin和maria数据求和,请提前帮助我,谢谢。
excel数据
<表类>
名称
工资
动机
tbody><<tr>0 约翰 2000 400 1埃德温 3000 600 2玛丽亚 1000 200 表类>
根据Total行判断,您需要的是'john', 'edwin'的和,而不是edwin和maria的和。我使用了isin函数,它返回一个布尔掩码,然后用它来选择所需的行(ind变量)。在数据框中,Total一行用总和填充。然后pd。Concat用于连接剩余的行。在Excel中对账户求和,不明白你想要什么?
import pandas as pd
df = pd.DataFrame({'name':['john', 'edwin', 'maria'], 'salary':[2000, 3000, 1000], 'incentive':[400, 600, 200]})
ind = df['name'].isin(['john', 'edwin'])
df1 = pd.DataFrame({'name':['Total'], 'salary':[df.loc[ind, 'salary'].sum()], 'incentive':[df.loc[ind, 'incentive'].sum()]})
df1 = pd.concat([df1, df])
df1 = df1.reset_index().drop(columns='index')
print(df1)
输出name salary incentive
0 Total 5000 1000
1 john 2000 400
2 edwin 3000 600
3 maria 1000 200