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



我现在有一个辅助函数,我在我的pandas数据框架上使用itertuples。我有50+列,并在我的process_row函数中使用它们,并且不想逐个传递它们。

,

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

我用apply do加快了速度:

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

我怎样才能正确地应用pandas或numpy矢量化并加快我的应用速度呢?我的DF有我在逻辑中使用的50+列,并且将整行传递给辅助函数而不是50个参数要容易得多,并且我发现的每个示例都指向特定的DF列,如果我将其打破,它将起作用。

>>> 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,可以直接用于创建您的新列。

相关内容

  • 没有找到相关文章