zoukankan      html  css  js  c++  java
  • pandas DataFrame 交集并集补集

    1.场景,对于colums都相同的dataframe做过滤的时候

    例如:

    df1 = DataFrame([['a', 10, '男'], 
    ['b', 11, '男'],
    ['c', 11, '女'],
    ['a', 10, '女'],
    ['c', 11, '男']],
    columns=['name', 'age', 'sex'])

    df2 = DataFrame([['a', 10, '男'],
    ['b', 11, '女']],
    columns=['name', 'age', 'sex'])

    取交集:print(pd.merge(df1,df2,on=['name', 'age', 'sex']))
    取并集:print(pd.merge(df1,df2,on=['name', 'age', 'sex'], how='outer'))
    取差集(从df1中过滤df1在df2中存在的行):
    df1 = df1.append(df2)
    df1 = df1.append(df2)
    df1 = df1.drop_duplicates(subset=['name', 'age', 'sex'],keep=False)
    print(df1)

    代码:
    # -*- coding:utf-8 -*-
    __version__ = '1.0.0.0'
    """
    @brief : 简介
    @details: 详细信息
    @author : zhphuang
    @date : 2018-10-29
    """

    import pandas as pd
    from pandas import *

    df1 = DataFrame([['a', 10, '男'],
    ['b', 11, '男'],
    ['c', 11, '女'],
    ['a', 10, '女'],
    ['c', 11, '男']],
    columns=['name', 'age', 'sex'])
    print("df1: %s " % df1)
    df2 = DataFrame([['a', 10, '男'],
    ['b', 11, '女']],
    columns=['name', 'age', 'sex'])
    print("df2: %s " % df2)
    # 取交集
    print("交集: %s " % pd.merge(df1,df2,on=['name', 'age', 'sex']))

    # 取并集
    print("并集: %s " % pd.merge(df1,df2,on=['name', 'age', 'sex'], how='outer'))

    # 从df1中过滤df1在df2中存在的行,也就是取补集
    df1 = df1.append(df2)
    df1 = df1.append(df2)
    print("补集(从df1中过滤df1在df2中存在的行): %s " % df1.drop_duplicates(subset=['name', 'age', 'sex'],keep=False))
    截图 
     
    当值未一旬,而视茫茫,而发苍苍,而齿牙动摇
  • 相关阅读:
    让应用通过苹果审核出人头地的10个方法
    正则表达式练习 Regex Golf
    Cocos2d-iOS入门知识详解
    Linux C++/Java/Web/OC Socket网络编程
    JAVA-API Dom4J解析xml/OPML & Rome解析RSS & QRCode编码解码
    李开复:做技术还是管理?
    水两道搜索
    利用HttpClient4进行网络通讯
    hdu5698 百度之星2016round2b第3题
    百度之星2016资格赛D,水题
  • 原文地址:https://www.cnblogs.com/niuniuc/p/9873134.html
Copyright © 2011-2022 走看看