python dataframe 在merge时 产生笛卡尔积
在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
python dataframe 在merge时 产生笛卡尔积的更多相关文章
- (原)怎样解决python dataframe loc,iloc循环处理速度很慢的问题
怎样解决python dataframe loc,iloc循环处理速度很慢的问题 1.问题说明 最近用DataFrame做大数据 处理,发现处理速度特别慢,追究原因,发现是循环处理时,loc,iloc ...
- Python dataframe中如何使y列按x列进行统计?
如图:busy=0 or 1,求出busy=1时los的平均,同样对busy=0时也求出los的平均 Python dataframe中如何使y列按x列进行统计? >> python这个答 ...
- 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
怎样解决python dataframe loc,iloc循环处理速度很慢的问题 1.问题说明 最近用DataFrame做大数据 处理,发现处理速度特别慢,追究原因,发现是循环处理时,loc,iloc ...
- git有merge时如何删除分支
不小心增加了一个分支,并且有了merge,如何删除掉? 具有merge时不能切换分支 可以利用git stash命令 git rm controllers/InterfaceController.ph ...
- python在读取文件时出现 'gbk' codec can't decode byte 0x89 in position 68: illegal multibyte sequence
python在读取文件时出现“UnicodeDecodeError:'gbk' codec can't decode byte 0x89 in position 68: illegal multiby ...
- [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子
[Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子 sqlContext = HiveContext(sc) peopleDF = sqlContext. ...
- [Spark][Python][DataFrame][RDD]从DataFrame得到RDD的例子
[Spark][Python][DataFrame][RDD]从DataFrame得到RDD的例子 $ hdfs dfs -cat people.json {"name":&quo ...
- [Spark][Python][DataFrame][Write]DataFrame写入的例子
[Spark][Python][DataFrame][Write]DataFrame写入的例子 $ hdfs dfs -cat people.json {"name":" ...
- [Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子
[Spark][Python][DataFrame][SQL]Spark对DataFrame直接执行SQL处理的例子 $cat people.json {"name":" ...
随机推荐
- Charles Proxy for Mac & Windows (4.1.3)破解激活工具
1.简介 2017年7月10日更新本博客,Charles已经更新到了4.1.3版本,并对应地给出破解jar包. Charles是一个Mac和Windows平台都可以使用的抓包工具,它的破解激活非常简单 ...
- Android -- ViewPager、Fragment、状态保存、通信
工程架构 TabAFm到Tab ...
- (转)[原创]在ios android设备上使用 Protobuf (使用源码方式)
自:http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程只能以.Net 2.0而不能以.Net 2.0 subset运行,请看另外一个方法. 地 ...
- _com_util::ConvertBSTRToString的使用问题
#include <comutil.h> 然后调用_com_util::ConvertBSTRToString提示如下错误: error LNK2019: unresolved exter ...
- Python访问MongoDB数据库
#encoding: utf-8 __author__ = 'Administrator' #import pymongo from pymongo import MongoClient,GEO2D ...
- layer获取iframe内容
var layer1 = function() { layer.open({ type: 2, title: '标题', maxmin: false, area: ['780px', '600px'] ...
- poj 2135 (基础费用流)
题意:从1到n再到1,每条边只能走一次,求最短距离. 建图:每条边只能走一次就是流量是1,添加源点与1相连,容量为2,费用为0,n与汇点相连容量为2,费用为0: 求增广路用SPFA最短路求,, #in ...
- NSDate 时区转换问题
一: NSDateFormatter *dateFormater = [[NSDateFormatter alloc]init]; [dateFormater setDateFormat:@" ...
- webstorm激活+汉化教程
1.安装教程+激活 输入的激活网址: http://idea.imsxm.com/ 2.汉化教程 软件适用于:webstorm2017.2以及以上,如有需要可直接加本人QQ 1940694428.
- js toSting方法实现
function toString (val: any): string { return val == null ? '' : typeof val === 'object' ? JSON.stri ...