Los*_*st1 4 python reshape pandas
我有以下数据结构
Date Agric Food
01/01/1990 1.3 0.9
01/02/1990 1.2 0.9
Run Code Online (Sandbox Code Playgroud)
我想把它转换成格式
Date Sector Beta
01/01/1990 Agric 1.3
01/02/1990 Agric 1.2
01/01/1990 Food 0.9
01/02/1990 Food 0.9
Run Code Online (Sandbox Code Playgroud)
虽然我确信我能以复杂的方式做到这一点,有没有办法在几行代码中做到这一点?
使用set_index和stack:
df.set_index('Date').rename_axis('Sector',axis=1).stack()\
.reset_index(name='Beta')
Run Code Online (Sandbox Code Playgroud)
输出:
Date Sector Beta
0 01/01/1990 Agric 1.3
1 01/01/1990 Food 0.9
2 01/02/1990 Agric 1.2
3 01/02/1990 Food 0.9
Run Code Online (Sandbox Code Playgroud)
df.melt('Date', var_name='Sector', value_name='Beta')
Date Sector Beta
0 01/01/1990 Agric 1.3
1 01/02/1990 Agric 1.2
2 01/01/1990 Food 0.9
3 01/02/1990 Food 0.9
Run Code Online (Sandbox Code Playgroud)