pandas

Pandas取交集、并集、差集

2021-06-25  本文已影响0人  Justin小贾同学

数据合并有多种方式,其中最常见的应该就是交集、并集差集的求取。

取交集

pandas数据merge功能默认的行为是交集,inner连接

import pandas as pd
df1=pd.DataFrame([
        ['1','张三'],
        ['2','王丽'],
        ['3','王麻子'],
        ['4','王二虎'],
    ],columns=['id','name'])
df2=pd.DataFrame([
        ['2','王丽'],
        ['3','王麻子'],
        ['5','大飞'],
        ['6','小明'],
    ],columns=['id','name'])
pd.merge(df1,df2,on=['id','name'])
id name
0 2 王丽
1 3 王麻子

取并集

how的取值有'left','right','inner','outer',默认是inner

pd.merge(df1,df2,on=['id','name'],how='outer')
id name
0 1 张三
1 2 王丽
2 3 王麻子
3 4 王二虎
4 5 大飞
5 6 小明

取差集

先添加到后面,再删除重复出现的。

df5=pd.DataFrame([
        ['1','张三'],
        ['2','王丽'],
        ['3','王麻子'],
        ['4','王二虎'],
    ],columns=['id','name'])
df6=pd.DataFrame([
        ['2','王丽'],
        ['3','王麻子']
    ],columns=['id','name'])

df5=df5.append(df6)
df5
id name
0 1 张三
1 2 王丽
2 3 王麻子
3 4 王二虎
0 2 王丽
1 3 王麻子
df5=df5.drop_duplicates(subset=['id'],keep=False)
df5
id name
0 1 张三
3 4 王二虎
上一篇下一篇

猜你喜欢

热点阅读