実現したいこと
Pythonでライブラリを使用して単回帰式を実装した後に、その単回帰式をstr型に変換して、作成済みの既存のdfに追加
したいと思っています。
既存のdfに文字式を追加する適当な関数を調べてみたのですが、見つける事ができませんでした。最終的には下の様な形に
したいです。
Formula |
---|
y = [[1.08625107]]x + [0.1922801] |
該当のソースコード
Python3
1import numpy as np 2import pandas as pd 3from sklearn import datasets,linear_model 4 5df = pd.DataFrame({ 6 "Weight(g)": [0.43, 0.4, 0.45, 0.4, 0.35, 0.5, 0.35, 0.51, 0.43], 7 "Long Axis": [0.92, 0.9, 1.04, 0.97, 0.97, 0.8, 0.97, 1.21, 0.92], 8 "Short Axis": [0.91, 0.89, 0.97, 0.92, 0.88, 0.7, 0.88, 0.95, 0.85], 9 "Grain Thickness": [0.73, 0.56, 0.63, 0.74, 0.51, 0.6, 0.51, 0.77, 0.83], 10 "Sumple_vert": ['A', 'A', 'A', 'B', 'B', 'B', 11 'C', 'C', 'C'], 12 "BeanNumber_vert": ['B2', 'B2', 'B2', 'B6', 'B6', 'B6','B39', 'B39', 'B39']}) 13 14 15 16model = linear_model.LinearRegression() 17 18X = df['Weight(g)'] 19Y = df['Grain Thickness'] 20 21model.fit(pd.DataFrame(X), pd.DataFrame(Y)) 22 23a=model.coef_ 24b=model.intercept_ 25c=(f"y = {a}x + {b}") 26 27df1 =pd.DataFrame({ 28 "Formula": [], 29 }) 30 31df1.append(c)
### エラーコード
cannot concatenate object of type "<class 'str'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
### 試した事(追記)
a=df1.values.tolist() a.append(c) b= pd.DataFrame(a)
という形にすると一応、単回帰の式を収容する事ができたのですが、そうすると行の名前が消えてしまいます。
pandas.dfをリストにして、数式を追加して、またdfに戻すというのはあまりに冗長なので、
df1に直接数式を追加する様な方法を教えて頂きたいです。
補足情報(FW/ツールのバージョンなど)
Anacond
Python
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/01 10:01
2019/09/01 10:07
2019/09/01 10:32