在 Pandas 中翻转数据框并将一列值保留为新行值 [重复]
Posted
技术标签:
【中文标题】在 Pandas 中翻转数据框并将一列值保留为新行值 [重复]【英文标题】:Flip a Data Frame in Pandas and keep one column's values as the new row's values [duplicate] 【发布时间】:2021-08-16 02:32:30 【问题描述】:我目前有一个数据框,当我读到它时看起来像这样:
Date | Country | A | B | C |
---|---|---|---|---|
01/01/2020 | AFG | 0 | 1 | 5 |
01/02/2020 | AFG | 2 | 5 | 0 |
01/03/2020 | AFG | 1 | 4 | 1 |
... | ... | ... | ... | ... |
01/01/2020 | USA | 2 | 3 | 7 |
01/02/2020 | USA | 4 | 5 | 6 |
我想将其转换为下面的表格,其中国家成为行的索引,日期替换列,A 列的值继续填充每个国家/地区的日期值。
Country | 01/01/2020 | 01/02/2020 | 01/03/2020 | ... | 04/25/2021 |
---|---|---|---|---|---|
AFG | 0 | 2 | 1 | ... | 5 |
USA | 2 | 4 | 9 | ... | 15 |
我之前尝试过使用 group-by,但似乎没有任何东西以上面显示的方式工作。我忘记了命令还是有什么方法可以做到?
【问题讨论】:
【参考方案1】:你可以这样做:
尝试pivot_table
获取所需的内容。
使用rename_axis
删除轴名称。
最后通过reset_index()
重置索引。
df = df.pivot_table(index='Country', columns='Date', values='A', fill_value=0).rename_axis(None, axis=1).reset_index()
输出:
Country 01/01/2020 01/02/2020 01/03/2020
0 AFG 0 2 1
1 USA 2 4 0
【讨论】:
以上是关于在 Pandas 中翻转数据框并将一列值保留为新行值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
根据另一个数据框 python pandas 替换列值 - 更好的方法?