在 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 中翻转数据框并将一列值保留为新行值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

计算由另一列值分组的列值在 pandas 数据框中的共现

根据另一个数据框 python pandas 替换列值 - 更好的方法?

插入表格并将另一列设置为自动递增的列值

如何对一列执行 pandas groupby 操作,但将另一列保留在结果数据框中

根据 pandas 或 numpy 中某一列的值创建新行

Pandas:如果条件[重复],则从另一列更新列值