如何使用辅助函数向量化 pandas 代码并传递整行?

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

我现在有一个辅助函数,我在我的 pandas 数据框上使用

itertuples

例如:

def process_row(self, df_row):
   return df_row['sky_color'] == 'blue':

我已经通过申请加快了速度:

df['isSkyBlueExample'] = df.apply(process_row, axis = 1)

如何正确应用 pandas 或 numpy 向量化并进一步加快我的应用速度?我的 DF 有 50 多个我在逻辑中使用的列,将整行传递给辅助函数而不是 50 个参数要容易得多,而且我发现的每个示例都引用特定的 DF 列,如果我中断,这些列将起作用出来了。

python pandas dataframe numpy
1个回答
0
投票
>>> import pandas as pd
>>> df = pd.DataFrame({"sky_color": ["blue", "red", "blue", "green"]})
>>> df["isSkyBlueExample"] = df["sky_color"] == "blue"
>>> df
  sky_color  isSkyBlueExample
0      blue              True
1       red             False
2      blue              True
3     green             False

表达式

df["sky_color"] == "blue"
返回一个布尔值
Series
可以直接用于创建新列。

© www.soinside.com 2019 - 2024. All rights reserved.