首页 > 解决方案 > 在 Pandas 中翻转数据框并将一列的值保留为新行的值

问题描述

我目前有一个数据框,当我读到它时,它看起来像这样:

日期 国家 一个 C
2020 年 1 月 1 日 AFG 0 1 5
2020 年 1 月 2 日 AFG 2 5 0
2020 年 1 月 3 日 AFG 1 4 1
... ... ... ... ...
2020 年 1 月 1 日 美国 2 3 7
2020 年 1 月 2 日 美国 4 5 6

我想将其转换为下面的表格,其中国家成为行的索引,日期替换列,A 列的值继续填充每个国家的日期各自的值。

国家 2020 年 1 月 1 日 2020 年 1 月 2 日 2020 年 1 月 3 日 ... 2021 年 4 月 25 日
AFG 0 2 1 ... 5
美国 2 4 9 ... 15

我之前尝试过使用 group-by,但似乎没有任何东西以上面显示的方式工作。我忘记了命令还是有什么办法可以做到?

标签: pythonpandasdataframegroup-bytime-series

解决方案


你可以这样做:

  1. 尝试pivot_table获得所需的。

  2. 用于rename_axis删除轴名称。

  3. 最后通过 重置索引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

推荐阅读