Как преобразовать несколько строк в сложенные столбцы в Excel / Python? - PullRequest
0 голосов
/ 12 января 2019

Существует ли простой способ перехода с типа А на тип Б.

Refer to the link for image

Примечание: Kutools (плагин в Excel) предоставляет решение для него, но оно не является надежным и не выглядит масштабируемым.

Есть ли обходной путь для этого?

1 Ответ

0 голосов
/ 12 января 2019

Учитывая, что вы можете сделать df похожим на приведенное ниже: (просто удалите верхнюю строку с надписью Type A)

    GDP per capita      1950    1951    1952    1953
0   Antigua and Barbuda 3544    3633    3723    3817
1   Argentina           7540    7612    7019    7198
2   Armenia             1862    1834    1914    1958
3   Aruba               3897    3994    4094    4196
4   Australia           12073   12229   12084   12228
5   Austria             6919    7382    7386    7692

Использование pd.melt()

>>pd.melt(df,id_vars='GDP per capita',var_name='Year',value_name='GDP Value')

    GDP per capita      Year    GDP Value
0   Antigua and Barbuda 1950    3544
1   Argentina           1950    7540
2   Armenia             1950    1862
3   Aruba               1950    3897
4   Australia           1950    12073
5   Austria             1950    6919
6   Antigua and Barbuda 1951    3633
7   Argentina           1951    7612
8   Armenia             1951    1834
9   Aruba               1951    3994
10  Australia           1951    12229
11  Austria             1951    7382
12  Antigua and Barbuda 1952    3723
13  Argentina           1952    7019
14  Armenia             1952    1914
15  Aruba               1952    4094
16  Australia           1952    12084
17  Austria             1952    7386
18  Antigua and Barbuda 1953    3817
19  Argentina           1953    7198
20  Armenia             1953    1958
21  Aruba               1953    4196
22  Australia           1953    12228
23  Austria             1953    7692

Чтобы получить точный вид изображения, которое вы разместили, используйте:

df1=pd.melt(df,id_vars='GDP per capita',var_name='Year',value_name='GDP Value')
df1.rename(columns={'GDP per capita':'Country'},inplace=True)
df1['GDP'] = 'GDP per capita'
df1 = df1[['GDP','Country','Year','GDP Value']]
df1.to_csv('filepath+filename.csv,index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...