の他のセルから値を導出する、NaN値と列のセルを埋める:パンダは、私がデータフレームを持っている行
a b c
0 1 2 3
1 1 1 1
2 3 7 NaN
3 2 3 5
...
私はここ列「三」インプレース(値を更新)を充填します値は機械学習アルゴリズムを使用するNaNです。
私はそれをどのように行うのか分かりません。サンプルコード:
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
df=pd.DataFrame([range(3), [1, 5, np.NaN], [2, 2, np.NaN], [4,5,9], [2,5,7]],columns=['a','b','c'])
x=[]
y=[]
for row in df.iterrows():
index,data = row
if(not pd.isnull(data['c'])):
x.append(data[['a','b']].tolist())
y.append(data['c'])
model = LinearRegression()
model.fit(x,y)
#this line does not do it in place.
df[~df.c.notnull()].assign(c = lambda x:model.predict(x[['a','b']]))
しかし、これは私にデータフレームのコピーを与えます。私は残したオプションだけforループを使用していますが、私はそれをしたくありません。私はパンダを使ってそれをやるという、より多くのピッソニックな方法があるはずだと思います。誰かが助けてくれますか?それともこれを行う方法は他にありますか?
model.predictは整数を返します。問題は、行の他のセルの値を取る予言で、私はどのように与えるか分かりません。あなたが提案したものを試しましたが、うまくいかなかった: 'df.loc [〜df.three.notnull()と++ i> 0、 'three'] = model.predict(df.iloc [[i]] [['' one '、' two ']]。values.tolist()[1]) '助けて解決策を教えてもらえますか? – harshit
'didnt work'はあまり正確ではありません。また、 'model.predict'についての情報を追加するために質問を編集できますか?より深く理解するためには、再現可能なコードが必要です。 – knightofni
サンプルコード – harshit