根据列中的值合并行

时间:2018-09-10 12:29:55

标签: python-2.7 pandas pandas-groupby

我有一个看起来像这样的数据框:

    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列值变得唯一。还有其他想法可以实现吗?

1 个答案:

答案 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 
相关问题