如何根据键从数据框中的每一列中删除空值,并在1行中追加非空列值

时间:2019-06-13 10:09:21

标签: pandas dataframe pandas-groupby

我正在使用pandas和pandasql验证b / w 2个不同数据源的数据。验证之后,我将不匹配项存储在新的数据框中。问题是,对于列键,在每一行中,我将不匹配的列作为非空值,而其他列为空。

enter image description here 我尝试使用df.stack(),但效果不佳。

对于给定的键,我希望1行中的所有不匹配列,而不是每行中包含不匹配的列的多行。

实际数据帧表示形式在image中。 我在下面提供了一个示例:(Bi,Bj)->对(预期的,实际的)列值。

 sample = pd.DataFrame(data = {'A':[10,10,10] , 'B1':['CMBS-Cash','Nan','Nan'],'B2':['CMBS','Nan','Nan'] ,'B3':['Nan','CMBSCASH','Nan'],'B4':['Nan','Eternit','Nan'] ,
                         'B5':['Nan','Nan','CMBS'],'B6':['Nan','Nan','Cash']})

 final = pd.DataFrame(data = {'A':[10] , 'B1':['CMBS-Cash'],'B2':['CMBS'] ,'B3':['CMBSCASH'],'B4':['Eternit'] ,'B5':['CMBS'],'B6':['Cash'] })

1 个答案:

答案 0 :(得分:0)

如果您用""填充“ NaN”值,则可以使用groupbysum

final = sample.fillna("").groupby("A").sum().reset_index()