Python 通过对每一行进行操作,“pandas”在数据帧中创建列的方式是什么?

Python 通过对每一行进行操作,“pandas”在数据帧中创建列的方式是什么?,python,pandas,dataframe,apply,Python,Pandas,Dataframe,Apply,我有一个apply函数,它对数据帧中的每一行进行操作。apply函数的结果是一个新值。此新值将放在该行的新列中 因此,在将此函数应用于数据帧中的所有行之后,该数据帧中将有一个全新的列 如何在pandas中执行此操作 主要有两种方式: df['new_column'] = df.apply(my_fxn, axis=1) 或 如果需要使用其他参数,可以将它们传递给apply函数,但有时(对我来说)只使用lambda更容易: df['new_column'] = df.apply(lambda r

我有一个
apply
函数,它对数据帧中的每一行进行操作。
apply
函数的结果是一个新值。此新值将放在该行的新列中

因此,在将此函数应用于数据帧中的所有行之后,该数据帧中将有一个全新的列

如何在
pandas
中执行此操作

主要有两种方式:

df['new_column'] = df.apply(my_fxn, axis=1)

如果需要使用其他参数,可以将它们传递给
apply
函数,但有时(对我来说)只使用lambda更容易:

df['new_column'] = df.apply(lambda row: my_fxn(row, global_dict), axis=1)
此外,如果您的函数可以以矢量化方式对数组进行操作,则可以执行以下操作:

df['new_column'] = my_fxn(df['col1'], df['col2'])

我以前应该提到过这一点:我的函数有两个参数,一个来自
数据帧的行,一个全局字典。我试着这样合并它们:
df['new_column']=df.apply(my_fxn(row),args=(),axis=1)
,但它似乎将全局_字典分解为单独的K/V对。结果它告诉我,争论太多了。如何将参数传递给
apply
函数?@DSM D'oh我从另一个路径开始,忘了清理所有内容。@Hunle将字典直接传递给函数(请参见编辑)
df['new_column'] = my_fxn(df['col1'], df['col2'])