現在、pythonのpandasのgroupbyの使用方法を色々練習
しています。そこで、以下のことを実現したいです。ただ、python学び始めで
基礎的な部分から理解が足りておらず、皆さんにご教授いただけますと幸いです。
** 【実現したいこと】**
業種毎に線形回帰を行い、決定計数(R2)を算出したいです。
具体的には、データフレーム内業種の「通信」における、priceとnumberの
回帰分析を行った時の決定計数は〇〇、「原油」における決定計数は
〇〇を出力したいです。
【問題のあるソースコード】※エラーが出て動かない
python
1from sklearn.linear_model import LinearRegression 2import pandas as pd 3def model(df): 4 x = df[['price']].values 5 y = df[['number']].values 6 lin_reg = LinearRegression().fit(x, y) 7 df222=pd.DataFrame(round(lin_reg.score(x, y ,3)) 8 return df222 9 10df=pd.DataFrame([ 11 [1,100,500,"通信"], 12 [2,200,600,"通信"], 13 [4,200,600,"通信"], 14 [10,400,800,"通信"], 15 [100,400,800,"原油"],#重複 16 [3,400,800,"原油"], 17 [7,800,500,"通信"], 18 [5,200,10000,"原油"]]) 19df.columns=["price","number","other","業種"] 20 21df2=df.groupby('業種').apply(model) 22print(df2)
【理想とするデータフレームの出力】
決定計数
通信 0.1
原油 0.2
※値は適当
【参考としたサイト】
https://python5.com/q/jpcdafym
回答1件
あなたの回答
tips
プレビュー