2017-05-17 6 views
2

私はパンダを使って次のデータセットをきちんと整理してみようとしています。私は自分の変数がグループ、温度、流れ、圧力、年であると信じていますが、私はパンダの方法を使って正しく再構成することに問題があります。面倒なデータセットを整理する

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

私はそれはそれはMESだとは思いませんsy。 'df.melt(id_vars = ['Group'、 'Property']、value_vars = ['2012'、 '2013'、 '2014'、 '2015'、 '2016']、var_name = '' Year ') '2012年、2013年の整数を列名に使用する必要があるかもしれませんが、ここではその型を見ることはできません。 – ayhan

答えて

2

私は整理されたデータを理解しているので、列に変数が必要です。私は、観察としてGroupYearを解釈し、変数として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

は、少なくとも3つのソリューションがあります。この片付け、このデータセットへ:

ましょう使用:​​、stackunstack

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

​​

出力:

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、​​、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 
+0

ありがとう@スコットボストン!私は今、 '溶融 'は0.20の方法であると思う –

関連する問題