Pandas
dataframe
の各行にlist
を生成する複雑な関数があります。私はlist
という新しい列の各行の値をmylist
としたいと思います。新しいPandas Dataframe列にapplyを介して新しいリストを追加します
これを実行するPandasの能力は、開始データフレームの列数に依存するようです。
import pandas as pd
df = pd.DataFrame(data=[['A', 'D'],
['B', 'E'],
['C', 'F']],
columns=['col1', 'col2'])
df1 = pd.DataFrame(data=[['A', 'D', 'G'],
['B', 'E', 'H'],
['C', 'F', 'I']],
columns=['col1', 'col2', 'col3'])
def add_list(row):
return [1,3, 3]
df['mylist'] = df.apply(add_list, axis=1)
print df
利回り:
col1 col2 list
0 A D [1, 3, 3]
1 B E [1, 3, 3]
2 C F [1, 3, 3]
この追加のコード利回りValueError: Wrong number of items passed 3, placement implies 1
。なぜ始まりの列の数はdataframe
に影響を与える必要がありますか?
df1['mylist'] = df1.apply(add_list, axis=1)
print df1
Iは、(一つの要素を追加すること)以下に機能を変更する場合、エラーがない:
def add_list(row):
return [1,3, 3, 4]
期待出力:
col1 col2 col3 list
0 A D G [1, 3, 3]
1 B E H [1, 3, 3]
2 C F I [1, 3, 3]
実際の出力は何ですか? –
@JoeRは期待される出力を追加しました – user2242044