merge规则 python_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。

Original: https://blog.csdn.net/weixin_36378793/article/details/113903140
Author: 桔梗一身骄傲
Title: merge规则 python_python dataframe 在merge时 产生笛卡尔积

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/756768/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球