首页 > 解决方案 > 如何在 Pandas 中用 df.apply() 替换 df.iterrows()?

问题描述

我有以下循环:

dict1 = {}
dict2 = {}
for (i, row) in df[['col1', 'col2', 'col3']].iterrows():
            dict1[row['col1']] = row['col2']
            dict2[row['col1']] = row['col3']

据我所知,这个循环真的很慢(我的数据框中大约有 70'000 行df)。

有什么办法可以加快速度吗?我用谷歌搜索了一下,他们说我应该使用df.apply()而不是.iterrows().

标签: pythonpandas

解决方案


IIUC,使用:

m=df[['col1', 'col2', 'col3']]
dict1=m.set_index('col1')['col2'].to_dict()
dict2=m.set_index('col1')['col3'].to_dict()

推荐阅读