我现在有一个辅助函数,我在我的 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 列,如果我中断,这些列将起作用出来了。
>>> 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
可以直接用于创建新列。