python中的``重组''数据框

八谷

我正在将先前在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_indexDataFrame.unstackDataFrame.sort_indexDataFrameMultiIndex,然后将其压平f-strings,不加最后原始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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章