我有一个数据框架,设计得不好,看起来像这样:
df = pd.DataFrame({
'Day': ['2021-03-01', '2021-03-01', '2021-03-02', '2021-03-02', '2021-03-03'],
'Name': ['Sam', 'Sam', 'Jack', 'Steve', 'Steve'],
'Fruit':['Apple', 'Apple', 'Banana', 'Apple', 'Banana'],
'2021-03-01':['2', '1', '0', '1', '1'],
'2021-03-02': ['3', '5', '4', '2', '1'],
'2021-03-03':['7', '3', '2', '1', '4']})
df
Day Name Fruit 2021-03-01 2021-03-02 2021-03-03
0 2021-03-01 Sam Apple 2 3 7
1 2021-03-01 Sam Apple 1 5 3
2 2021-03-02 Jack Banana 0 4 2
3 2021-03-02 Steve Apple 1 2 1
4 2021-03-03 Steve Banana 1 1 4
我希望对于
Day
中的每个日期,都与具有与Day
值相同的列名对应的列中的日期分组,并通过求和来聚合其他变量。例如,如果
Day
值为'2021-03-01',则在“2021-03-01”列中,我将对值(此列中苹果数量和香蕉数量)进行求和。最终想要得到的结果数据框如下所示: Date Name nrApples nrBananas
0 2021-03-01 Sam 3 0
1 2021-03-02 Jack 0 4
2 2021-03-02 Steve 2 0
3 2021-03-03 Steve 0 4
问题在于我有很多这样的日期列,而且不知道如何检查Day列中的值是否与某一列的名称相同,并聚合其值。 感谢您的帮助。