我有这个数据框:
data = pd.DataFrame({
'Date': ['2000-01','2000-01', '2000-01','2000-02','2000-03', '2000-03', '2099-01'],
'Value': [10, 30, 2, 3, 40, 50, 999],
'Name': ['Peter', 'Peter', 'Jessica','Jessica', 'Will', 'Will', 'Peter']
})
Date Value Name
0 2000-01 10 Peter
1 2000-01 30 Peter
2 2000-01 2 Jessica
3 2000-02 3 Jessica
4 2000-02 40 Will
5 2000-03 50 Will
6 2099-01 999 Peter
我想基于Value
和Date
对Name
中的值求和,以使结果在下面。在这里您可以看到,对于Peter
和日期2000-01
,有两个值10
和30
,它们的总和是40
,因此添加到Sum
的第一行中。相反,Jessica
每月只有一个值(可以在2000-01
和2000-02
中看到,值分别为2
和3
),使得这两个值行将不相加。
Date Value Name Sum
0 2000-01 10 Peter 40
1 2000-01 30 Peter 40
2 2000-01 2 Jessica 2
3 2000-02 3 Jessica 3
4 2000-02 40 Will 40
5 2000-03 50 Will 50
6 2099-01 999 Peter 999
如何根据上述两个条件对值求和?我只知道pd.pivot_table()
,但这会根据一列中的唯一值向右下方添加新列。