将函数解压缩到数据框中

时间:2016-01-22 18:58:02

标签: python list pandas

我有一个返回两个列表的函数,所以a可以将它们保存在两个变量中:

list_a,list_b = my_function(input)

我想将其直接保存到数据框中,如下所示:

df[['list_a','list_b']]  =  my_function(input)

我收到以下错误:

array is not broadcastable to correct shape

2 个答案:

答案 0 :(得分:2)

使用

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的长度相匹配。

答案 1 :(得分:0)

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'])