2017-02-08 4 views
1

に列を追加するには、私のデータフレームDFの一例である:パンダのデータフレームのグループによって退行し、ここでは予測値とベータ/ T-統計

Category Y     X1  X2 
0 Apple 0.083050996 0.164056482 0.519875358 
1 Apple 0.411044939 0.774160332 0.002869499 
2 Apple 0.524315907 0.422193005 0.97720091 
3 Apple 0.721124638 0.645927536 0.750210715 
4 Berry 0.134488729 0.299288214 0.522933484 
5 Berry 0.733162132 0.608742944 0.957595544 
6 Berry 0.113051075 0.641533175 0.19799635 
7 Berry 0.275379123 0.249143751 0.049082766 
8 Carrot 0.588121494 0.750480977 0.615399987 
9 Carrot 0.878221581 0.021366296 0.069184879 

今私はコードがために回帰を行うことができるようにしたいです各カテゴリー(すなわち、カテゴリー別に分類された横断的回帰(アップル、ベリー、ニンジンなど))。

次に、回帰から予測値を持つ新しい列df ['Y_hat']を追加し、対応する2つのベータとt-統計値(ベータとt-stat値は複数の行で同じになります同じカテゴリの)。

最終DFが5つの追加の列、Y_hat、ベータ1、ベータ2、T-STAT 1とt-STAT 2.

答えて

1

あなたが "GROUPBY" のために多くのことをしたい:)

を持っているでしょう

DataFrameをカテゴリ別にスライスし、そのカテゴリの個々の結果をループの最後にDataFrameを構築するために使用する辞書に格納する方が良いと思います。

result = {} 
# loop on every category 
for category in df['Category'].unique(): 
    # slice 
    df_slice = df[df['Category'] == category] 
    # run all the stuff your want to do 
    result[category] = { 
     'predicted_value': ***, 
     'Y_hat': *** 
     'etc' 
     ... 
    } 

# build dataframe with all your results 
final_df = pd.DataFrame(result) 

デバッグする必要がある場合は、はるかに簡単になります。がんばろう! :)

+0

問題は私のデータフレームが巨大なので、groupbyを使用する方が速い方法がありますか?ありがとう – MysterioProgrammer91

+0

GroupByは、非Pythonで記述されたランタイムと関数を使用するため、高速です。これらの操作が純粋なPythonであると書いた場合、差をつけたり、パンダのグループを使用したりすることはありません! –

関連する問題