【发布时间】:2016-01-22 18:58:02
【问题描述】:
我有一个返回两个列表的函数,因此可以将它们保存在两个变量中,例如:
list_a,list_b = my_function(input)
我想将它直接保存到数据框中,如下所示:
df[['list_a','list_b']] = my_function(input)
我收到以下错误:
array is not broadcastable to correct shape
【问题讨论】:
我有一个返回两个列表的函数,因此可以将它们保存在两个变量中,例如:
list_a,list_b = my_function(input)
我想将它直接保存到数据框中,如下所示:
df[['list_a','list_b']] = my_function(input)
我收到以下错误:
array is not broadcastable to correct shape
【问题讨论】:
使用
df['B'], df['C'] = my_function()
解压my_function返回的列表元组并将列表分配给df['B']和df['C']:
import pandas as pd
N = 5
def my_function():
return [10]*N, [20]*N
df = pd.DataFrame({'A':[1]*N})
df['B'], df['C'] = my_function()
产量
A B C
0 1 10 20
1 1 10 20
2 1 10 20
3 1 10 20
4 1 10 20
注意my_function 返回的列表长度必须与df 的长度匹配。
【讨论】:
import pandas as pd
list_a, list_b = my_function(input)
df = pd.DataFrame([list_a, list_b], columns=['a','b'])
或合并为一行:
df = pd.DataFrame(list(my_function(input)), columns=['a','b'])
【讨论】: