python - DataFrame 无循环更新行的最快方法
问题描述
创建场景:
假设一个数据帧有两个系列,A
输入在哪里B
,结果是A[index]*2
:
df = pd.DataFrame({'A': [1, 2, 3],
'B': [2, 4, 6]})
假设我正在接收 100k 行数据帧并在其中搜索错误(此处B->0
无效):
df = pd.DataFrame({'A': [1, 2, 3],
'B': [2, 0, 6]})
使用搜索无效行
invalid_rows = df.loc[df['A']*2 != df['B']]
我有invalid_rows
现在,但我不确定df
用结果覆盖原始无效行的最快方法是A[index]*2
什么?
迭代df
using是一种选择,但如果增长会iterrows()
很慢。df
我可以df.update()
以某种方式使用它吗?
带循环的工作解决方案:
index = -1
for row_index, my_series in df.iterrows():
if myseries['A']*2 != myseries['B']:
df[index]['B'] = myseries['A']*2
但是有没有更快的方法来做到这一点?
解决方案
推荐阅读
- java - 我们可以在 selenium webdriver 中使用 for 循环的场景有哪些?
- mule - 从存储库打开并处理 Mulesoft 项目
- gradle - 如何在 IntelliJ 中调试我的 Grails 应用程序?
- html - 如何显示primeNg inputSwitch的未选中元素?
- naming-conventions - 在命名我的函数以提供规律性时,我是否应该放弃语法正确性?
- android - 在不同设备上运行 Xamarin.Forms 应用程序 [错误:install_failed_missing_shared_library]
- angular - 使用过滤器管道的组件之间的角度交互
- node.js - 使用流星从谷歌云存储桶下载图像文件到IOS本地存储
- php - PHP - 无符号整数(64位)的奇怪行为
- python - 缓存还是其他?页面未使用 Flask / nginx 更新