在python中为重复的列转置数据帧

2024-10-02 12:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它由两列组成,即“info和value”。我需要转置这些datframe,将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出现之前,所有列都转换为行。在这些CC列中,AA不存在,所以它必须为空,但对于下一个AA,CC列存在,所以它应该附加该值。你知道吗


Tags: 数据infodfvalueddaaccbb
1条回答
网友
1楼 · 发布于 2024-10-02 12:28:52

使用^{}作为计数器,如果每个组以AA值开始,则按^{}创建MultiIndex,按^{}重塑,按^{}最后删除列名:

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

相关问题 更多 >

    热门问题