通过对每一行进行操作来在数据框中创建列的“pandas”方法是什么?
What is the `pandas` way to create a column in a dataframe by operating on each row?
我有一个 apply
函数可以对数据框中的每一行进行操作。 apply
函数的结果是一个新值。这个新值旨在进入该行的新列。
因此,将此函数应用于数据框中的所有行后,该数据框中将有一个全新的列。
如何在 pandas
中执行此操作?
主要有两种方式:
df['new_column'] = df.apply(my_fxn, axis=1)
或
df = df.assign(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'])
我有一个 apply
函数可以对数据框中的每一行进行操作。 apply
函数的结果是一个新值。这个新值旨在进入该行的新列。
因此,将此函数应用于数据框中的所有行后,该数据框中将有一个全新的列。
如何在 pandas
中执行此操作?
主要有两种方式:
df['new_column'] = df.apply(my_fxn, axis=1)
或
df = df.assign(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'])