gpt4 book ai didi

python - 在 Python 中反转行和列转换

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

我有一个数据框,我想在其中维护原始数据集中的所有列,并根据现有数据集创建一个新的透视列。

数据

 stat1 stat2    id  q122con q122av  q122con q122av  q222con q222av  q222con q222av
50 1000 aa 40 10 900 100 50 0 1000 0
100 2000 bb 50 50 1500 500 75 25 1900 100




需要

stat1   stat2   id  date    con         av          con         av      
50 1000 aa q122 40 10 900 100
50 1000 aa q222 50 0 1000 0
100 2000 bb q122 50 50 1500 500
100 2000 bb q222 75 25 1900 100


正在做

df.pivot(index="id", columns="date", values=["con", "av"])

但是,我没有获得数据集中的完整列。任何建议表示赞赏。

最佳答案

wide_to_long 的一些长的一行

pd.wide_to_long(df.set_index(['stat1','stat2','id']).stack().groupby(level=[0,1,2,3]).agg(list).apply(pd.Series).unstack().stack(level=0).reset_index(),
stubnames = ['q122','q222'], i = ['stat1','stat2','id','level_3'],j = 'date',suffix='\\w+').stack().unstack(level=[-3,-2])
Out[140]:
level_3 0 1
date av con av con
stat1 stat2 id
50 1000 aa q122 10 40 100 900
q222 0 50 0 1000
100 2000 bb q122 50 50 500 1500
q222 25 75 100 1900

关于python - 在 Python 中反转行和列转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70251636/

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