gpt4 book ai didi

python - 如何使用列名和列中的值翻转数据框,同时将所有静态列保留在数据框中?

转载 作者:行者123 更新时间:2023-12-01 09:00:09 25 4
gpt4 key购买 nike

我有一个包含 500 列、2 列('FieldTitle'、'Value')列的数据框,我想将其行“翻转”为列,df 如下所示:

id    FieldTitle    Value   UID   number  XID
1 fname aaa 12 123 345
1 lname bbb 12 123 345
2 fname ccc 23 432 543
2 lname ddd 23 432 543

如何使数据框看起来像这样?:

id     fname     lname     UID    number  XID
1 aaa bbb 12 123 345
2 ccc ddd 23 432 543

目前,当我旋转时,只有“FieldTitle”和“Value”中的列保留,而所有静态列都被删除。

pivoted_df = pd.pivot_table(df,index='Id',columns='FieldTitle',values='Value',aggfunc='first').reset_index()

我也尝试过以下方法,但没有成功:

pivoted_df = pd.pivot_table(df, index='Id', columns='FieldTitle', values=['Value'], aggfunc='first').reset_index()

最佳答案

您可以将列名称列表传递给参数index:

pivoted_df = pd.pivot_table(df, index=['id','UID','number','XID'], 
columns='FieldTitle',
values='Value',
aggfunc='first').reset_index()
print (pivoted_df)
FieldTitle id UID number XID fname lname
0 1 12 123 345 aaa bbb
1 2 23 432 543 ccc ddd

如果想动态添加值到index参数:

cols = df.columns.difference(['FieldTitle','Value']).tolist()

pivoted_df = pd.pivot_table(df, index=cols,
columns='FieldTitle',
values='Value',
aggfunc='first').reset_index()
print (pivoted_df)

关于python - 如何使用列名和列中的值翻转数据框,同时将所有静态列保留在数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519115/

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