gpt4 book ai didi

python - 在Python中将数据框从水平 reshape 为垂直

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

我尝试按如下方式将 Excel 文件从水平转换为垂直:

enter image description here

使用pd.read_clipboard我得到:

                         2017   2018   2019
city price ratio price ratio price ratio
bj 10 0.1 13 0.1 23 0.1
sh 15 0.2 12 0.2 15 0.5
gz 12 0.15 14 0.15 12 0.1
sz 11 0.25 13 0.25 11 0.5

我修改了year标题以使其看起来更好:

         2017        2018          2019
city price ratio price ratio price ratio
bj 10 0.1 13 0.1 23 0.1
sh 15 0.2 12 0.2 15 0.5
gz 12 0.15 14 0.15 12 0.1
sz 11 0.25 13 0.25 11 0.5

如何将其转换为这样的预期输出?谢谢。

   city  year  price  ratio
0 bj 2017 10 0.10
1 bj 2018 13 0.10
2 bj 2019 23 0.10
3 sh 2017 15 0.20
4 sh 2018 12 0.20
5 sh 2019 15 0.50
6 gz 2017 12 0.15
7 gz 2018 14 0.15
8 gz 2019 12 0.10
9 sz 2017 11 0.25
10 sz 2018 13 0.25
11 sz 2019 11 0.50

最佳答案

如果列中有MultiIndex,您可以使用DataFrame.stack , DataFrame.rename_axisDataFrame.reset_index :

print (df.columns)
MultiIndex([('2017', 'price'),
('2018', 'ratio'),
('2019', 'price'),
('2017', 'ratio'),
('2018', 'price'),
('2019', 'ratio')],
)

df = df.stack(0).rename_axis(('city','year')).reset_index()
print (df)
city year price ratio
0 bj 2017 10 0.10
1 bj 2018 23 0.10
2 bj 2019 13 0.10
3 sh 2017 15 0.20
4 sh 2018 15 0.20
5 sh 2019 12 0.50
6 gz 2017 12 0.15
7 gz 2018 12 0.15
8 gz 2019 14 0.10
9 sz 2017 11 0.25
10 sz 2018 11 0.25
11 sz 2019 13 0.50

关于python - 在Python中将数据框从水平 reshape 为垂直,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59298794/

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