【问题标题】:Unpack a function into a data frame将函数解包到数据框中
【发布时间】: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

【问题讨论】:

    标签: python list pandas


    【解决方案1】:

    使用

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

    【讨论】:

      【解决方案2】:
      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'])
      

      【讨论】:

        猜你喜欢
        • 2018-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-21
        • 2018-07-11
        • 1970-01-01
        • 2019-02-08
        相关资源
        最近更新 更多