我正在将先前在SPSS Modeler中完成的一些数据清理工作转换为Python。在SPSS中,您有一个称为“结构”的“节点”。我试图弄清楚如何在Python中执行相同的操作,但是我在努力实现这一目标上很挣扎。它的作用是将X列中的每个值与A,B,C等不同列中的所有值组合在一起。
因此,原始数据帧如下所示:
Code Freq1 Freq2
A01 1 7
B02 0 6
C03 17 8
转换后,它应如下所示:
Code Freq1 Freq2 A01_Freq1 A01_Freq2 B02_Freq1 B02_Freq2 C03_Freq1 C03_Freq2
A01 1 7 1 7 Nan Nan Nan Nan
B02 0 6 Nan Nan 0 6 Nan Nan
C03 17 8 Nan Nan Nan Nan 17 8
我已经尝试了一些关键的东西,但是我想这不可能一步一步地在Python中完成...
使用DataFrame.set_index
带DataFrame.unstack
和DataFrame.sort_index
新DataFrame
带MultiIndex
,然后将其压平f-string
s,不加最后原始DataFrame.join
:
df1 = df.set_index('Code', append=True).unstack().sort_index(axis=1, level=1)
df1.columns = df1.columns.map(lambda x: f'{x[1]}_{x[0]}')
df = df.join(df1)
print (df)
Code Freq1 Freq2 A01_Freq1 A01_Freq2 B02_Freq1 B02_Freq2 C03_Freq1 \
0 A01 1 7 1.0 7.0 NaN NaN NaN
1 B02 0 6 NaN NaN 0.0 6.0 NaN
2 C03 17 8 NaN NaN NaN NaN 17.0
C03_Freq2
0 NaN
1 NaN
2 8.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句