python - 使用大型 csv 文件进行快速过滤、排序和提取的最佳方式(在内存中?)
问题描述
我有一个带有大约 100 万条记录和 1gb 大小的旧版静态 csv。每行大约有 300 个字段。
一些字段是非规范化的一对多关系,例如每个订单Category_1, Category_2, Category_3,...,Category_20
等但是类别字段的数量最多可以是 20,并且如果类别少于 20 个或超过 20 个类别,则为空,则额外的类别被省略了。字段值可以是"DX001 - Dairy"
,"CX002 - Cosmetics"
现在类别的顺序不固定。所以DX001
可以在任何 N 个类别 ( Category_1, Category_2, Category_3, Category_N
) 字段中。
还有另一个字段Amount
是美元。喜欢$1,256.25
现在我需要做一些事情,比如搜索所有类别为“DX001”或“CX002”且金额 > 1000 美元的订单,并按金额对其进行排序,然后将仅包含这些记录的数据导出到 csv,以提供给用户通过网络界面。
哪种技术堆栈最适合具有快速处理(几秒钟来处理查询并使 csv 可用)且成本合理的解决方案?就我个人而言,我从事过大规模的工作,并使用 elasticsearch 作为我的数据源,用于一个包含 TB 级数据的项目。但我个人认为这对于这个用例来说成本太高,而且太过分了。还是我需要将其导入传统数据库?可以为此使用python在内存中完成某些事情吗?因为我熟悉 Python,但如果有可用的解决方案,也可以采用任何其他语言。将不胜感激一些帮助。
PS:我查看了 pandas,但我无法弄清楚如何通过在 N 个字段中的每个字段中搜索类别列表来查询类别。所以如果你知道如何在熊猫中解决这个问题,请告诉我!
谢谢!
解决方案
推荐阅读
- node.js - 使用 Node js 从 Shopify Graphql 查询响应中获取键:值对
- php - Laravel 路由出现故障
- firebase - Next-auth Google 身份验证和 Firebase 适配器
- excel - 通过 Office.JS 获取 Excel 单元格绑定的问题
- c# - 从旧的excel文件中提取PNG问题?
- javascript - Tensorflow.js 多项式回归
- curl - 如何在 Windows PowerShell 的 curl 命令中传递 @filename.txt?
- linux - Windows 10 (WSL2) 上不支持的操作系统 Laravel 8 with Sail
- reactjs - ReferenceError:找不到变量:标记
- c++ - 我得到一个 Linker 2005 错误已经在 naive.obj 中定义并且已经在 strassen.obj 中定义