order和product是都有重复的大型表格,互相是多对多的关系即订单一可以包含多个产品,一个产品可以被多个订单包含,现在想用一个类似矩阵的形式储存这两个列表间的关系以便于查询
应该用什么数据结构算法更快
如果有细说思路,代码更好了
关于#python#的问题:数据结构算法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Java大魔王 2022-09-24 10:49关注
可以用python的pandas的dataframe结构去处理,不管你的数据是在sql中,还是在excel,json,csv,tsv等等不同的地方,或者说实在程序运行过程中产生的,没有额外存储的别的地方。pandas这个库都能把你的数据变成一个二维的类似表的结构(dataframe),有行索引和列索引,类似这样:
那么按照你说的有两个大型表格,那就放到两个dataframe里面就好了,然后通过dataframe提供的各种方法,例如groupby分组,merger关联(可以左关联,右关联那等等),concat合并进行数据的操作,可以达到在程序中就和操作sql一样。非常方便简单代码示例:
import pandas as pd # 初始化dataframe赋值 df_a = pd.DataFrame([{'a_id': '1', 'a_name': '苹果'}, {'a_id': '2', 'a_name': '西瓜'}] ) df_b = pd.DataFrame([{'b_id': '1', 'a_value': 15, 'a_id': '1'}, {'b_id': '2', 'a_value': 20, 'a_id': '2'}, {'b_id': '3', 'a_value': 8, 'a_id': '3'}] ) df_c = pd.DataFrame([{'a_id': '3', 'a_name': '香蕉'}, {'a_id': '4', 'a_name': '雪梨'}] ) # 进行合并(类似sql的union,表头一样的,上下合并成一张表) df_a_c = pd.concat([df_a, df_c]) # 进行关联,类似sql的left join,right join,inner join df_left_join = pd.merge(df_a_c, df_b, left_on='a_id', right_on='a_id', how='left')
运行结果:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 vscode platformio
- ¥15 代写uni代码,app唤醒
- ¥15 全志t113i启动qt应用程序提示internal error
- ¥15 ensp可以看看嘛.
- ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
- ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
- ¥15 minist数字识别
- ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
- ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
- ¥15 网上下载的3DMAX模型,不显示贴图怎么办