python-3.x - 内存问题?如何有效地获得所需的输出?
问题描述
我有一个包含 1000 万行的数据框
识别速度
AB 34
AB 45
公元前60
公元前 32 年
公元前40
英孚 90
假设我想创建第三列 Acceleration,它在 ID 级别上采用 0(减速)或 1(加速)。
我总共有 2000 多个唯一 ID。
我试过这个
for id in df['ID'].unique() :
df.loc[df['ID'] == id,'speed']
df['acceleration'] = df['speed'].apply(accl)
我的accl函数如下
def accl(a):
for i in range(1,len(a)) :
if a[i] > a[i-1]:
return 1
else:
return 0
运行循环后,我遇到了内存问题。
如何有效地解决这个问题?有什么技巧吗?如果这是解决方案,如何使用 Numpy 数组解决这个问题?
请记住:我需要 ID 级别的数据,因此 df['speed'] 上的连续 i+ 1 > i 将无法获取 Acceleration 列。
解决方案
推荐阅读
- xquery - 如何声明包含元素列表作为参数的传递值?
- jenkins - 尝试使用共享库并行触发所有作业
- java - 将 KeyEvent 传递给不同的组件
- jinja2 - 可以将 Airflow Macros 传递给 GKEPod 操作符参数吗?
- angular - 从 Snackbar 组件中的 SnackBar 更改 panelClass
- python - 具有大量共享代码的无服务器功能的正确 git 结构
- django - 如何调用模板?
- node.js - 如何将文档返回给我的 API 调用?
- python - 如何在python的多线程中分配全局变量
- javascript - HTML5 视频:未捕获的类型错误:无法读取未定义的属性“播放”