如何更快地更新基于另一个数据帧的pandas dataframe列?

时间:2017-02-21 21:02:24

标签: python pandas dataframe

我使用以下代码更新基于另一个的数据框。但是,它非常缓慢。我正在寻找解决方案。

for inx, row in df1.iterrows():
    dfTmp = df2.loc[df2['KANR'].astype(str) == row['KANR']]
    if dfTmp.empty:
        continue

    if dfTmp.loc[dfTmp['STATUS'] == "F5"].empty is False:
        timestamp = "%s %s" % (dfTmp.loc[dfTmp['STATUS'].astype(str) == "F5"].iloc[0, ]["Date"],
                               dfTmp.loc[dfTmp['STATUS'].astype(str) == "F5"].iloc[0, ]["Time"])
        df1.set_value(inx, 'F5', timestamp)

1 个答案:

答案 0 :(得分:1)

您可以使用针对速度进行优化的merge,并且对于此类匹配任务会更快,例如,假设您没有为每个{{1}重复日期时间}:

KANR