我正在使用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'] })
答案 0 :(得分:0)
如果您用""
填充“ NaN”值,则可以使用groupby
和sum
final = sample.fillna("").groupby("A").sum().reset_index()