2016-01-22 46 views
0

我有它返回兩個列表的功能,所以可以挽救那些在兩個變量,如:解壓功能爲數據幀

list_a,list_b = my_function(input) 

我想這直接保存到數據幀,這樣的事情:

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

我得到了以下錯誤:

array is not broadcastable to correct shape 

回答

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

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