【问题标题】:Faster way of remapping dictionary to dataframe将字典重新映射到数据框的更快方法
【发布时间】:2018-09-16 09:31:12
【问题描述】:

我正在尝试将 dictionary 中的 remap 数据转换为数据框中的相应值,并且我成功了。

当我使用几千条数据时这很好,但如果我尝试使用几百万条数据,它会变得非常缓慢,有时甚至永远不会结束。

这是我正在使用的代码,适用于更少的数据:

def remap(data,dict_labels):
    for field,values in dict_labels.items():
        data.replace({field:values},inplace=True)
    print("DONE")
    return data
dataframe1 = remap(df,dataDict)

是否有任何有效的方法可以将其他东西用于同一任务,以便更快地处理大数据?

【问题讨论】:

标签: python performance pandas dictionary dataframe


【解决方案1】:

您应该为此使用pd.DataFrame.applymap

dataframe1 = df.applymap(dict_labels.get).fillna(df)

请注意,我们使用fillna 来恢复未映射的值。

根据文档:

DataFrame.applymap(func)

将一个函数应用到一个要操作的DataFrame elementwise,即像为每个系列做 map(func, series) 数据帧

性能说明:Replace values in a pandas series via dictionary efficiently

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 2019-08-08
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2021-07-14
    • 2021-07-14
    • 2018-08-13
    相关资源
    最近更新 更多