私は、パンダデータフレームの各行に対して関数を実行し、その値を派生カラムスコアで出力したかったのです。以下に示す関数は例としてラムダですが、親データフレームインデックスを持つパンダシリーズのインデックス
例:
def calculate(row):
cols=row.columns
loc=row['loc']
h=row['h']
isst=row['Ist']
Hol=row['Hol']
return loc+h+len(cols)
a['score']=a.apply(lambda row:calculate(row),axis=1)
ができます:行のような親データフレームの列ラベルとアクセス列名によって[「COL1」]が、一連のオブジェクトは列ラベル情報を失うラムダ関数に渡され
AttributeError: ("'Series' object has no attribute 'columns'", u'occurred at index 0')
ラムダ関数の名前付きタプルのような名前付きシリーズにアクセスするにはどうすればよいですか?
クイックハックが実行することである:それはカラムラベルによって機能にアクセスできるようにmakedict関数は行ごとに辞書を作成する
a['score']=a.apply(lambda row:calculate(makedict(row,row.index)),axis=1)
。しかし、パンダの道はありますか?
行が – stackit
系列オブジェクトしたがってカラムインデクシング不可能 'DataFrame'インデックスと列を有しなります。フレームから行を抽出した後は、上記のようにインデックスを持つ 'Series'です。新しいシリーズのインデックスは、DataFrameの列と同じになります。 –