Python 如何使用多索引将数据帧中的单行相加为多行?
以季度和周为多索引的我的数据帧:Python 如何使用多索引将数据帧中的单行相加为多行?,python,pandas,dataframe,multi-index,Python,Pandas,Dataframe,Multi Index,以季度和周为多索引的我的数据帧: Quarter Week X Y Z Q1 Q1-W01 1 1 1 Q1-W02 2 2 2 Q1-W03 3 3 3 Q1-W04 4 4 4 Q2 Q2-W15 15 15 15 Q2-W16 16 16 16 Q2-W17 1
Quarter Week X Y Z
Q1 Q1-W01 1 1 1
Q1-W02 2 2 2
Q1-W03 3 3 3
Q1-W04 4 4 4
Q2 Q2-W15 15 15 15
Q2-W16 16 16 16
Q2-W17 17 17 17
Q2-W18 18 18 18
我试图将Q1(Q1-W04)中的最后一行添加到Q2(Q2-W15到Q2-W18)中的所有行。这就是我希望数据帧的外观:
Quarter Week X Y Z
Q1 Q1-W01 1 1 1
Q1-W02 2 2 2
Q1-W03 3 3 3
Q1-W04 4 4 4
Q2 Q2-W15 19 19 19
Q2-W16 20 20 20
Q2-W17 21 21 21
Q2-W18 22 22 22
当我尝试只指定级别0索引和特定行时,所有Q2值都将变为NaN
df.loc['Q2'] += df.loc['Q1','Q1-W04']
Quarter Week X Y Z
Q1 Q1-W01 1 1 1
Q1-W02 2 2 2
Q1-W03 3 3 3
Q1-W04 4 4 4
Q2 Q2-W15 NaN NaN NaN
Q2-W16 NaN NaN NaN
Q2-W17 NaN NaN NaN
Q2-W18 NaN NaN NaN
我发现,如果同时指定0级和1级索引,就不会有问题
df.loc['Q2','Q2-W15'] += df.loc['Q1','Q1-W04']
Quarter Week X Y Z
Q1 Q1-W01 1 1 1
Q1-W02 2 2 2
Q1-W03 3 3 3
Q1-W04 4 4 4
Q2 Q2-W15 19 19 19
Q2-W16 16 16 16
Q2-W17 17 17 17
Q2-W18 18 18 18
是否有一种方法可以将特定行与Q2 0级索引中的所有行相加,而不必通过其1级索引单独调用每一行
如有任何见解/指导,将不胜感激
多谢各位 试试这个
df.loc['Q2'] = (df.loc['Q2'] + df.loc['Q1', 'Q1-W04']).values.tolist()
loc返回一个数据帧,以设置它在列表或数组中查找的值。因此,上述内容。在您的情况下,我们应该消除
索引的影响
df.loc['Q2','Q2-W15'] += df.loc['Q1','Q1-W04'].values
将值与.valuesu一起添加到答案中@YOBEN_S。