将列表返回函数应用于 pandas DataFrame 中的所有行

问题描述 投票:0回答:1

我需要应用一个函数并将返回的列表的值插入到(新)数据帧中的列中。也就是说,如果我有这个:

import pandas as pd
def fu(myArg):
    return {"one":myArg,"two":20}
li = [10,20]
df = pd.DataFrame(li,columns=["myArg"])

我想将

fu
函数应用于数据帧的每一行,以便输出为:

    myArg   one two
0   10      10  20
1   20      20  20

(抱歉,由于显示原因而添加了额外的空格)。

我如何有效地做到这一点?

python pandas dataframe apply
1个回答
0
投票

让你的函数返回

Series
apply
,然后
join
:

def fu(myArg):
    return pd.Series({'one': myArg, 'two': 20})

out = df.join(df['myArg'].apply(fu))

输出:

   myArg  one  two
0     10   10   20
1     20   20   20
© www.soinside.com 2019 - 2024. All rights reserved.