繁体   English   中英

为python中的重复列转置数据框

[英]Transpose a dataframe for repeated columns in python

我有一个数据框,它由两列 'info 和 value' 组成。 我需要根据作为列名的信息和作为​​该列名中的值的值来转置这些数据框。

但我面临的问题是在 info 列中,有些值重复,有些值不重复。因此,如果列名重复,则必须将数据附加到该列中,如果没有,则应添加另一列

df

info    value
AA      3M 
BB      Charterer
DD      Tartous
AA      Syria
BB      +963
CC      +96
DD      pal

预期输出如下:

AA     BB           CC     DD
3M     Charterer          Tartous
Syria   +963        +96    pal

在数据帧 df 中,它与列 AA 一起进行策略,因此直到下一个 AA 发生之前,所有列都转换为 row 。 在这些 CC 列中,AA 不存在,因此它必须为空,但对于下一个 AA,CC 列存在,因此应附加该值。

使用Series.cumsum计数器如果通过启动各组AA值,创建MultiIndexDataFrame.set_index ,通过整形Series.unstack和最后删除列名的DataFrame.rename_axis

df1 = (df.set_index([df['info'].eq('AA').cumsum(), 'info'])['value']
         .unstack()
         .rename_axis(None, axis=1))
print (df1)
         AA         BB   CC       DD
info                                
1        3M  Charterer  NaN  Tartous
2     Syria       +963  +96      pal

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM