我有一个看起来像这样的数据框:
Row-Labels 300 301
0 BLR 1
1 BLR 2 2
2 NSL
3 RFR 3
4 TNC 22
我想要得到的是这样的:
Row-Labels 300 301
0 BLR 3 2
1 NSL
2 RFR 3
3 TNC 22
也就是说,我想将所有行合并为一个行标签列值相同的行。这种合并应使结果行中的列应将行标签值“ BLR”的A列中的所有值相加,并在不需要总和的情况下将其他值直接放入该行的该列中。
到目前为止,我所做的是这样的:
for i in range(300, 301):
temp_final_df.append(final_df.groupby(['Row-Labels'])['{}'.format(i)].apply(sum).reset_index())
但是其输出不正确。简而言之,我想合并行,以使Row_labels列值变得唯一。还有其他想法可以实现吗?
答案 0 :(得分:0)
使用:
df.groupby('Row-Labels').sum().replace(0,np.nan)
如果您不想要np.nan,而只是空白值:
df.groupby('Row-Labels').sum().replace(0,'')
编辑:
df.groupby('Row-Labels').sum().replace(0,'').reset_index()
输出:
Row-Labels 300 301
0 BLR 3 2
1 NSL
2 RFR 3
3 TNC 22