質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

解決済

Python3系で、文字列をdfに追加する

Danrussia
Danrussia

総合スコア44

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1回答

0グッド

0クリップ

6428閲覧

投稿2019/09/01 09:16

編集2019/09/01 10:02

実現したいこと

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
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

ベストアンサー

下記でDataFrame df に列'Formula'を追加し、その値を変数 c にします。

Python

1df['Formula'] = c

投稿2019/09/01 09:53

meg_

総合スコア9746

Danrussia👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Danrussia

2019/09/01 10:01

回答ありがとうございます。 これは完全にこちらの説明不足なのですが、"df"という既存のものにではなく、"df1"という新規作成したdfに列に変数cを追加したいです。
meg_

2019/09/01 10:07

こういうことですか? df1 = pd.DataFrame() df1['Formula'] = c
Danrussia

2019/09/01 10:32

すいません。そういう事です、ありがとうございます。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。