我有一個複雜的函數,爲Pandas
dataframe
中的每一行生成一個list
。我想在這個新列中的每一行中輸入值mylist
。通過apply將一個靜態列表添加到一個新的Pandas Dataframe列
熊貓這樣做的能力似乎取決於起始數據框中的列數。
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
如果我改變功能到下方(添加一種元素),則不存在錯誤:
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