![](/img/trans.png)
[英]Transpose the DataFrame in pandas/python, but not all columns
[英]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
值,创建MultiIndex
由DataFrame.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.