2016-03-28 3 views
0

私は、このDFを変換したい具体的なケースがあります。groupbyの後、データフレームの行の値をPythonの列のラベルに変換する方法は?

私は、線形回帰モデルのためにnumpyの配列に変換できるように、この形式で取得する必要があり
Schoolname Attribute Value 
0 xyz School Safe   3.44 
1 xyz School Cleanliness 2.34 
2 xyz School Money  4.65 
3 abc School Safe   4.40 
4 abc School Cleanliness 4.50 
5 abc School Money  4.90 
6 lmn School Safe   2.34 
7 lmn School Cleanliness 3.89 
8 lmn School Money  4.65 

DF 印刷を。

required_df:  
    Schoolname Safe Cleanliness Money 
0 xyz School 3.44 2.34  4.65 
1 abc School 4.40 4.50  4.90  
2 lmn School 2.34 3.89  4.65 

私たちはGROUPBY(「Schoolname」)が、行は列ラベルとrequired_dfに反映対応する値になるために名前を取得し、その後考えることができないを行う必要があります知っています。

私はnumpy配列に変換し、私のXベクトルとして線形回帰モデルに与えることができるように、この形式で必要です。

+0

を使用することができます。それは解決策を提供することをより容易にするでしょう。ところで、あなたはこれまでに何を試しましたか? –

+0

編集のための@JoeRありがとうございます。フォーラムに初めて参加しました。これらのことを世話するでしょう。 –

答えて

2

我々はそれを再作成することができますので、あなたの `df`を投稿することができますあなたはpd.pivot

In [171]: df.pivot(index='Schoolname', columns='Attribute', values='Value') 
Out[171]: 
Attribute Cleanliness Money Safe 
Schoolname 
abc-School   4.50 4.90 4.40 
lmn-School   3.89 4.65 2.34 
xyz-School   2.34 4.65 3.44 

以上の発現可能pd.pivot_table

In [172]: pd.pivot_table(df, values='Value', index='Schoolname', columns='Attribute') 
Out[172]: 
Attribute Cleanliness Money Safe 
Schoolname 
abc-School   4.50 4.90 4.40 
lmn-School   3.89 4.65 2.34 
xyz-School   2.34 4.65 3.44 
関連する問題