Pandas: сопоставить даты по оси X с осью Y в CSV - PullRequest
1 голос
/ 27 марта 2020

Учитывая следующий файл 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 |
+---------+----------+----------+----------+

Как я могу превратить это в следующее, используя pandas в python:

+----------+---------+------------+
|   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.

1 Ответ

1 голос
/ 27 марта 2020

Попробуйте:

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
...