エラーが発生しています。パンダデータフレームValueError:渡された値の形状は(X、)、インデックスは(X、Y)を暗示します。
次が動作しているようです:
def random(row):
return [1,2,3,4]
df = pandas.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
df.apply(func = random, axis = 1)
と私の出力は次のとおりです。
[1,2,3,4]
[1,2,3,4]
[1,2,3,4]
[1,2,3,4]
しかし、私は、このような1またはNoneとしての価値に列のの1つを変更する場合:
:def random(row):
return [1,2,3,4]
df = pandas.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
df['E'] = 1
df.apply(func = random, axis = 1)
私はエラーを取得します
ValueError: Shape of passed values is (5,), indices imply (5, 5)
私は数日間このことに取り組んできましたが、何も動作していないようです。興味深いのは、私が変更されたときに
def random(row):
return [1,2,3,4]
def random(row):
print [1,2,3,4]
にすべてが正常に動作するように思われることです。
この質問は、私が混乱していたかもしれないと感じているasking this questionのより明確な方法です。
私の目標は、各行のリストを計算し、その中から列を作成することです。
EDIT:私はもともと、1列分のデータフレームから始めました。 4つの差分適用ステップで4つの列を追加し、別の列を追加しようとするとこのエラーが発生します。
だけで結構です下に、私はコードを使用しますか?リストを返す関数でapplyを使うと、これをSeriesに強制しようとするので、元の長さと同じ長さ、またはスカラー(Noneを含む)が必要です。 – Jeff
あなたの質問の出力は、あなたが適用から得たものではありません。最初のケースでは、4つの列を持つDataFrameが出力されます。@ Jeffによれば、リストには行が含まれています。 –
データフレームに列を追加しようとしています。この列は、計算された値で埋められます。計算された値は、各行の値から計算されます。関数randomは、値を計算するものです。 – user1367204