gpt4 book ai didi

python - 如何在 pandas 中进行条件转置(类似于使用 group by 时的 SQL 情况)

转载 作者:行者123 更新时间:2023-11-30 22:59:24 27 4
gpt4 key购买 nike

我有一个如下所示的数据框

ID name       Value
1 Brand B1
1 Color C1
1 Dimension D1
2 Brand B2
2 Color C2
2 Dimension D2

我想转置它,以便结果数据框是(注意我不想为每个名称创建一列)

ID Brand Color
1 B1 C1
2 B2 C2

探索了 pandas 中的“Unstack”,但这将转置 name 的所有值。有没有办法只转置选定的名称值。 pandas 相当于下面的内容

Select Id , 
(case when name = "Brand" then value else end ) as brand ,
(case when name = "COlor" then value else end) as color
from table
group by ID

最佳答案

我会使用pivot如:

a = df.pivot(index='ID', columns='name', values='Value')

返回:

name Brand Color Dimension
ID
1 B1 C1 D1
2 B2 C2 D2

然后您可以仅子选择您需要的列:

a[['Brand','Color']]

返回:

name Brand Color
ID
1 B1 C1
2 B2 C2

编辑:IIUC,您可以首先屏蔽数据框,仅保留您感兴趣的 name 列中的值:

df = df[df['name'].isin(['Brand','Color'])]

然后按照上面的方法进行旋转。

关于python - 如何在 pandas 中进行条件转置(类似于使用 group by 时的 SQL 情况),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35769773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com