首页 > 解决方案 > 使用熊猫循环遍历数据框时使用 if/else 语句的最快方法

问题描述

我试图在遍历 pandas df 行时运行条件语句,结果代码非常慢。例如:

for i, row in df.iterrows():
            # transform date column
            if len(df.loc[i, 'date']) == 7:
                df.loc[i, 'date'] = '0' + df.loc[i, 'date']

df 只有大约 40k 行,而且速度很慢,因为这只是我试图与这个循环合并的语句之一。你能用一种更快的方法来做这样的循环吗?

谢谢!

标签: pythonpandasdataframeloopsconditional-statements

解决方案


找到相关行并修改它们:

df.loc[df["date"].str.len() == 7, "date"] = "0" + df.loc[df["date"].str.len()== 7, "date"]

推荐阅读