我现在有一个辅助函数,我在我的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
,可以直接用于创建您的新列。