我试图使用pandas将以下数据集放在整齐的格式中。我相信我的变量是Group,Temperature,Flow,Pressure和Year但是我在使用pandas方法正确地重构它时遇到了麻烦。
Group Property 2012 2013 2014 2015 2016
0 A Pressure 6057 1645 953 6333 5396
1 A Temperature 5796 1494 1374 2013 3244
2 A Flow 1425 1226 1903 1109 2805
3 B Pressure 10522 1209 1312 2253 1232
4 B Temperature 4712 1172 1877 2788 1163
5 B Flow 1991 5366 1017 1582 5884
答案 0 :(得分:2)
根据我对整洁数据的理解,您需要列中的变量。我将Group
和Year
解释为观察,将Property
解释为变量。
df.set_index(
['Group', 'Property']
).rename_axis('Year', 1).stack().unstack('Property')
Property Flow Pressure Temperature
Group Year
A 2012 1425 6057 5796
2013 1226 1645 1494
2014 1903 953 1374
2015 1109 6333 2013
2016 2805 5396 3244
B 2012 1991 10522 4712
2013 5366 1209 1172
2014 1017 1312 1877
2015 1582 2253 2788
2016 5884 1232 1163
答案 1 :(得分:1)
整理此数据集至少有三种解决方案:
让我们使用:set_index
,stack
,unstack
df.set_index(['Group', 'Property']).rename_axis('Year',1).stack().unstack('Property').reset_index()
输出:
Property Group Year Flow Pressure Temperature
0 A 2012 1425 6057 5796
1 A 2013 1226 1645 1494
2 A 2014 1903 953 1374
3 A 2015 1109 6333 2013
4 A 2016 2805 5396 3244
5 B 2012 1991 10522 4712
6 B 2013 5366 1209 1172
7 B 2014 1017 1312 1877
8 B 2015 1582 2253 2788
9 B 2016 5884 1232 1163
其次,让我们使用:pivot
,stack
df.pivot(index='Group',columns='Property').stack(0).reset_index().rename(columns={'level_1':'Year'})
输出:
Property Group Year Flow Pressure Temperature
0 A 2012 1425 6057 5796
1 A 2013 1226 1645 1494
2 A 2014 1903 953 1374
3 A 2015 1109 6333 2013
4 A 2016 2805 5396 3244
5 B 2012 1991 10522 4712
6 B 2013 5366 1209 1172
7 B 2014 1017 1312 1877
8 B 2015 1582 2253 2788
9 B 2016 5884 1232 1163
第三,让我们使用:pd.melt
,set_index
,unstack
pd.melt(df,id_vars=['Group','Property'],var_name='Year').set_index(['Group','Year','Property'])['value'].unstack('Property').reset_index()
输出:
Property Group Year Flow Pressure Temperature
0 A 2012 1425 6057 5796
1 A 2013 1226 1645 1494
2 A 2014 1903 953 1374
3 A 2015 1109 6333 2013
4 A 2016 2805 5396 3244
5 B 2012 1991 10522 4712
6 B 2013 5366 1209 1172
7 B 2014 1017 1312 1877
8 B 2015 1582 2253 2788
9 B 2016 5884 1232 1163