python dataframe 在merge时 产生笛卡尔积
2024-10-21 07:31:16
在pandas中,concat, merge, join的使用方法可以参考以下资料:
http://blog.csdn.net/stevenkwong/article/details/52528616
主要讲下笛卡尔积:
import pandas as pd
from pandas import DataFrame
df1=DataFrame({'a':[1,2,3], 'b':[4,5,6], 'key':[0,0,0]})
df2=DataFrame({'c':[3,2,1], 'd':[6,5,4], 'key':[0,0,0]})
data = pd.merge(df1, df2, on='key')
这里merge默认为内连接。
df1:
a b key
0 1 4 0
1 2 5 0
2 3 6 0
df2:
c d key
0 3 6 0
1 2 5 0
2 1 4 0
data:
a b key c d
0 1 4 0 3 6
1 1 4 0 2 5
2 1 4 0 1 4
3 2 5 0 3 6
4 2 5 0 2 5
5 2 5 0 1 4
6 3 6 0 3 6
7 3 6 0 2 5
8 3 6 0 1 4
由此可知,当两个表连接时,有相同的key值就产生积。
如果,需要进行merge的次数过多时,每次都产生笛卡尔积,最终就会产生内存爆炸的现象。
所以,在merge时,一定要避免相同的key值,可以分批次merge,最后再concat。
---------------------
原文:https://blog.csdn.net/yj1556492839/article/details/79529186
最新文章
- shell 输出九九乘法表
- Android学习---ListView和Inflater的使用,将一个布局文件转化为一个对象
- json写入new_hello文件
- centos 20T硬盘(超过16T)分区
- KD-tree
- PowerShell 语法结构
- android -- WatchDog看门狗分析
- C#与.Net Framework的各种版本和联系
- js架构设计模式——理解javascript中的MVVM开发模式
- sshpass做秘钥分发,ansible做自动化运维工具
- 轻松把你的项目升级到PWA
- codeforces 897B Chtholly's request 偶数长度回文数
- Dlib Opencv cv2.fitEllipse用于人眼轮廓椭圆拟合
- [干货,阅后进BAT不是梦]面试心得与总结---阿里、小米、腾讯
- Spring4-@Enable** 注解的实现原理
- 静态方法(staticmethod)和类方法(classmethod)
- 洛谷P1315 观光公交
- css盒子模型、边框border、外边距margin、填充padding、轮廓outline
- ASP入门(十八)-访问Access中的数据库
- vue-学习笔记(更新中...)