zoukankan      html  css  js  c++  java
  • Python pandas库和MS SQL的等价操作->并集,交集,差集

    记录pandas中实现和SQL相同操作的语句

    union all -- 不去重

    union -- 自带distinct去重

    intersect  -- 自带distinct去重

    except  -- 自带distinct去重

     1 #coding=gbk
     2 import numpy as np
     3 import pandas as pd
     4 from pandas import DataFrame,Series
     5 df1=DataFrame({'a':[1,2,3],'b':[4,5,6]})
     6 df2=DataFrame({'a':[1,2,8],'b':[4,7,9]})
     7 print('df1')
     8 print(df1)
     9 print('df2')
    10 print(df2)
    11 print('union all的结果')
    12 print(pd.concat([df1,df2]))
    13 print('union的结果')
    14 print(pd.concat([df1,df2]).drop_duplicates())
    15 print('union并且重建索引的结果')
    16 print(pd.concat([df1,df2]).drop_duplicates().reset_index(drop=True))
    17 print('intersect的结果')
    18 print(df1.merge(df2).drop_duplicates())
    19 print('伪except的结果')
    20 print(df1[-df1.isin(df2)].dropna(how='all'))
    21 print('except的结果')
    22 print(df1.append(df2).append(df2).drop_duplicates(keep=False))

    结果如下

    drop_duplicates()的默认keep='first' 保留第一个  keep='False' 代表有重复则全部删除

    可能在某种情况下并不完全等价 仅提供参考

    谢谢!

  • 相关阅读:
    C语言的灵魂(函数)
    GO语言测试题
    gRPC的发布订阅模式
    gRPC 介绍和简单实现
    RPC与Protobuf(五)
    RPC和Protubuf(四)
    RPC与Protobuf(三)
    JS立即执行函数的几种写法
    如何写出让人看了恶心的代码
    记录几个前端必备的库/框架
  • 原文地址:https://www.cnblogs.com/chendongblog/p/10845450.html
Copyright © 2011-2022 走看看