python - 在python中增量加载大数据
问题描述
我正在尝试在 python 中加载一个大型(250 万行)数据集。我加载这个数据集的方式是通过一个 API,它在每次调用中给我一大块数据。
问题是我无法将所有数据存储到内存中。理论上我可以创建一个大的 CSV 文件并将每个块的数据附加到这个文件中,然后将 pandas read_csv 与块一起使用,但我想避免自己实际将文件写入磁盘。
我想知道是否有任何方法可以使用 pandas/dask/其他任何东西来实现这一目标?也就是说,逐步构建一个大型数据框。
附件是显示我的问题的示例代码。
import pandas as pd
def get_session_features(session_id): # this is the mock API function
return {'session_id': session_id, 'features': list(range(session_id))}
def get_features_session_list(session_ids):
all_features = []
for session_id in session_ids:
all_features.append(get_session_features(session_id))
return all_features
features = pd.DataFrame(get_features_session_list(list(range(100)))) # in large numbers this will cause a memory error
解决方案
推荐阅读
- kubernetes - 本地自动化基础设施部署的良好解决方案?
- sql-server - 有任何选项可以在 Google Cloud SQL Server 中运行 sp_addmessage
- python - 如何在反应中使用 useState 挂钩更新状态?
- python - X 有 232 个特征,但 StandardScaler 期望 241 个特征作为输入
- python - 如何设置冷却时间取决于用户有多少“手提箱”?
- background - Squarespace 中的灰色部分
- reactjs - React Query 和 Redux 的主要区别是什么?
- numpy - ImportError: numpy.core.multiarray 导入失败-即使我已经安装了 NumPy?
- google-cloud-platform - 如何从谷歌大查询中删除数据集?
- api - 如何基于 http req 方法运行 next.js 中间件功能?就像为“POST”请求而不是“GET”调用中间件函数