python - 如何在 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()
.
解决方案
IIUC,使用:
m=df[['col1', 'col2', 'col3']]
dict1=m.set_index('col1')['col2'].to_dict()
dict2=m.set_index('col1')['col3'].to_dict()
推荐阅读
- node.js - 如何在不使用 pipe() 强制下载的情况下向客户端呈现和显示 pdf
- python - 如何在 Windows 中设置默认 Python
- javascript - 从我的excel文件确认或取消数据上传后
- oracle - Oracle 包替换卡住了
- php - 如果我的 JQuery 表单填充控件为假,如何避免 PHP 重定向到“操作”网址?
- excel - 如何计算从表 1 到另一表 2 的不同特定单元格中出现的次数?
- php - 使用 php SoapServer 的分段错误(核心转储)错误
- javascript - 如何在 AM 图表 javascript 中仅选择一个国家/地区?
- angular - Videogular2:静音功能在 iphone、ipad 中不起作用
- xaml - 如何在运行时动态更改 App.xaml 资源