如何比较数据框的值并将条件应用于其他数据框?



我有一个数据框架。

df

SIN         MOL
339940     250000
322291     250000
321234     850000    

我想检查MOL的值是否相等,并在下一个数据帧中显示为

df1

SIN1                 SIN2       MOL1        MOL2
339940,322291        321234     250000      850000

这背后的逻辑是,具有相同MOL的SIN应该在下一个数据帧中通过','连接。

先按MOL组聚合join,然后按DataFrame.stack组重塑,排序正确,转换为DataFrame并转置,最后在map中平铺MultiIndex:

df1 = df.groupby('MOL')['SIN'].agg(lambda x: ','.join(x.astype(str))).reset_index()
df2 = df1.stack().sort_index(level=[1, 0], ascending=[False, True]).to_frame().T
df2.columns = df2.columns.map(lambda x: f'{x[1]}{x[0] + 1}')
print (df2)
SIN1    SIN2    MOL1    MOL2
0  339940,322291  321234  250000  850000

相关内容

  • 没有找到相关文章

最新更新