我有一个表,有50+列- 1每年.如何重塑表,使每年的数据点都在同一列中?



我对python比较陌生,遇到了一个问题,我无法理解。

我收集了一些经济指标,我希望分析它们与某些事件的相关性。我正在尝试格式化数据,以便我可以使用matplotlib进行分析。

目前的数据格式是这样的(不同的指标有不同的表,例如,GDP增长:

<表类> 国家名称 1950 1951 … 2020 2021 tbody><<tr>国家1X0X1…X70X71国家2Y0Y1…日元Y71

融化它似乎有效。

columns = ['Country Name',  '1950', '1951', '2020', '2021']
data = [['Country2',    'Y0','Y1','Y70','Y71'],
['Country1',    'X0','X1','X70','X71']]
df = pd.DataFrame(data,columns=columns)

>>> df
Country Name 1950 1951 2020 2021
0     Country2   Y0   Y1  Y70  Y71
1     Country1   X0   X1  X70  X71
>>>
>>> df.melt(id_vars=['Country Name'])
Country Name variable value
0     Country2     1950    Y0
1     Country1     1950    X0
2     Country2     1951    Y1
3     Country1     1951    X1
4     Country2     2020   Y70
5     Country1     2020   X70
6     Country2     2021   Y71
7     Country1     2021   X71
>>>
>>> dg = df.melt(id_vars=['Country Name'],var_name='Year', value_name='GDP Growth')
>>> dg
Country Name     Year      GDP Growth
0     Country2     1950              Y0
1     Country1     1950              X0
2     Country2     1951              Y1
3     Country1     1951              X1
4     Country2     2020             Y70
5     Country1     2020             X70
6     Country2     2021             Y71
7     Country1     2021             X71

相关内容

最新更新