1
次のスクリプトはLinux(Mint 18.1)で正常に動作します。パンダ:リニアモデルの係数を計算するスクリプトはLinuxでは正常に動作しますが、Windowsでは動作しません
この関数は、月間売上高の配列 "Y"を作成し、配列からnan値を削除します。次に、numpy.arange配列 "X"を作成します。これは1からYの長さになります。 次に、XとYに基づいて線形モデルを作成し、係数を計算します。
import pandas as pd
import numpy as np
from io import StringIO
from sklearn import linear_model as lm
data=
'''Fruit jan feb mar apr may jun jul aug sep oct nov dec
Apples nan nan nan 600 550 620 nan nan 300 100 200 50
Bananas 740 720 780 700 250 140 20 nan nan nan nan nan
Kiwis nan nan nan nan 400 550 nan 500 nan 40 50 nan
Oranges nan 300 350 300 400 500 nan nan nan nan nan nan
Grapes 150 200 250 200 50 50 40 35 30 20 10 nan'''
def coefficient(row):
y = np.array(row['jan':'dec'].astype(float))
y = np.nan_to_num(y)
y = y[y != 0]
x = np.arange(1,len(y)+1).reshape(len(y),1)
return lm.LinearRegression().fit(x,y).coef_
df = pd.read_csv(StringIO(data),delimiter='\s+')
df['COEF'] = df.apply(coefficient,axis=1)
これとまったく同じスクリプトは、私は両方のケースで完全にアップグレードアナコンダ3を使用していますWindowsの10
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\internals.py", line 109, in __init__
len(self.mgr_locs)))
ValueError: Wrong number of items passed 13, placement implies 1
に次のエラーが発生します。なぜこのようなことが起こるのか、またWindowsでのエラーを回避するためにスクリプトを変更する方法を知っていますか?
解決策がいいとは思わなかった。それでもOSが何をしなければならないかは分かりません。 – Duudsrednaz
テストするのに適切なLinuxマシンまたは仮想マシンがありません。しかし、私はLinuxがこの問題を引き起こす理由を考えることはできません。たぶんあなたはパンダとSklearnのバージョンをチェックできますか? – gepcel
私は "conda update --all"を両方でやったことがありますが、私が帰ったらもう一度チェックします。どちらの方法でも_.coef_ [0]は正しい結果を返します。 – Duudsrednaz