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

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

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

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

Python 3.x

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

pandas

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

Q&A

解決済

1回答

7616閲覧

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

Danrussia

総合スコア44

NumPy

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

Python 3.x

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

pandas

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

0グッド

0クリップ

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

Python

1df['Formula'] = c

投稿2019/09/01 09:53

meg_

総合スコア10577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問