【问题标题】:Pandas: map dates accross x-axis to y-axis in CSVPandas:将 x 轴上的日期映射到 CSV 中的 y 轴
【发布时间】:2020-07-07 19:01:51
【问题描述】:

给定以下 CSV 文件(在 DataFrame 中通过pandas.from_csv(...)

+---------+----------+----------+----------+
| country | 02/11/20 | 03/11/20 | 04/11/20 |
+---------+----------+----------+----------+
| Norway  |     5100 |     5200 |     5300 |
| Sweden  |     6100 |     6200 |     6300 |
| Finland |     4100 |     4200 |     4300 |
+---------+----------+----------+----------+

如何在 python 中使用pandas 将其转换为以下内容:

+----------+---------+------------+
|   date   | country | population |
+----------+---------+------------+
| 02/11/20 | Norway  |       5100 |
| 03/11/20 | Norway  |       5200 |
| 04/11/20 | Norway  |       5300 |
| 02/11/20 | Sweden  |       6100 |
| 03/11/20 | Sweden  |       6200 |
| 04/11/20 | Sweden  |       6300 |
| 02/11/20 | Finland |       4100 |
| 03/11/20 | Finland |       4200 |
| 04/11/20 | Finland |       4300 |
+----------+---------+------------+

所以本质上是将 x 轴上的日期映射到 y 轴。

【问题讨论】:

  • 索引中是“国家”还是数据框的第一列?
  • 这是第一栏@ScottBoston

标签: python pandas csv dataframe parsing


【解决方案1】:

试试:

df.melt('country', var_name='date', value_name='population')

输出:

     country      date  population
0   Norway    02/11/20        5100
1   Sweden    02/11/20        6100
2   Finland   02/11/20        4100
3   Norway    03/11/20        5200
4   Sweden    03/11/20        6200
5   Finland   03/11/20        4200
6   Norway    04/11/20        5300
7   Sweden    04/11/20        6300
8   Finland   04/11/20        4300

【讨论】:

  • 这太容易了!清洁和良好的解决方案,它的工作原理。
猜你喜欢
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多