应用一个返回列表并写入数据帧列的python函数

时间:2014-11-11 16:25:54

标签: python pandas

有没有办法可以将函数应用于pandas数据框,该数据框为其应用的每一行返回一个列表,然后获取该列表并将每个项目放入该现有数据框的新列中?

例如我的函数返回给定行下面的长度为9的列表

    [u'Republic Of Congo Permanent Mission to the United Nations',
    u'Embassy / Consulate',
    u'10021',
    u'Permanent Mission of Germany to the United Nations',
    u'Embassy / Consulate',
    u'10021',
    u'Permanent Mission of Kenya to the United Nations',
    u'Embassy / Consulate',
     u'10021']

然后我想将这些值存储在标有:

的列中
     colnames= ['prop1_name', 'prop1_type', 'prop1_zip',
        'prop2_name', 'prop2_type', 'prop2_zip',
        'prop3_name', 'prop3_type', 'prop3_zip'] 

现在,apply函数的返回是一个列表列表,每个内部列表都是一个9项目列表,如上所示。我很好地将响应放入一个新的数据框,如下所示,但我还没有弄清楚如何让apply函数写入每个返回的每个新行或者以正确的形式获取列表列表。 / p>

   df_new = pd.DataFrame(index=range(0,sample_size), columns=colnames)

1 个答案:

答案 0 :(得分:1)

这应该有效

df_new.apply(lambda r: pd.Series(function_taking_row(r), index=colnames), axis=1)