Pandas DataFrame求差集的示例代码

在Pandas中 求差集没有专门的函数。处理办法就是将两个DataFrame追加合并,然后去重。

divident.append(hasThisYearDivident)
noHasThisYearDivident = divident.drop_duplicates(subset='ts_code', keep=False, inplace=True, ignore_index=True)

具体函数用法:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html#pandas.DataFrame.append

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop_duplicates.html#pandas.DataFrame.drop_duplicates

补充示例:Pandas中两个DataFrame的差集

在pandas中,两个DataFrame的差集并没有直接的库内置方法,现在我们希望有一种方法,就像python中set内置的求差集一样,来找到两个DataFrame的差集。

>>> a=set((1,2,3))
>>> a
{1, 2, 3}
>>> b=set((2,3,4))
>>> b
{2, 3, 4}
>>> a-b
{1}

上面代码片段是对set的内置求差集方法的回顾,现在我们希望能有类似的方法来找两个DataFrame的差集。

解决思路是这样的:

对于有同样Index的a,b两个DataFrame,如果现在要求a对b的差集,那么可以(1)连续两次扩充a,使用append方法(2)然后使用drop_duplicates方法对a进行去重,并且参数keep=False。原理很简单,也很巧妙,连续扩充2次a,那么新扩充完后的DataFrame中来自b的row肯定是重复的,去重时候,b全部被删除,与此同时,a中跟b重复的row也会顺带着被删除。

代码实现:

>>> import pandas as pd
>>> data_a={'state':[1,1,2],'pop':['a','b','c']}
>>> data_b={'state':[1,2,3],'pop':['b','c','d']}
>>> a=pd.DataFrame(data_a)
>>> b=pd.DataFrame(data_b)
>>> a
  state pop
0   1  a
1   1  b
2   2  c
>>> b
  state pop
0   1  b
1   2  c
2   3  d
>>> a=a.append(b)
>>> a=a.append(b)
>>> a
  state pop
0   1  a
1   1  b
2   2  c
0   1  b
1   2  c
2   3  d
0   1  b
1   2  c
2   3  d
>>> a.drop_duplicates(subset=['state','pop'],keep=False)
  state pop
0   1  a

到此这篇关于Pandas DataFrame求差集的示例代码的文章就介绍到这了,更多相关Pandas DataFrame求差集内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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']) 取

  • Pandas中两个dataframe的交集和差集的示例代码

    创建测试数据: import pandas as pd import numpy as np #Create a DataFrame df1 = { 'Subject':['semester1','semester2','semester3','semester4','semester1', 'semester2','semester3'], 'Score':[62,47,55,74,31,77,85]} df2 = { 'Subject':['semester1','semester2','s

  • Pandas DataFrame求差集的示例代码

    在Pandas中 求差集没有专门的函数.处理办法就是将两个DataFrame追加合并,然后去重. divident.append(hasThisYearDivident) noHasThisYearDivident = divident.drop_duplicates(subset='ts_code', keep=False, inplace=True, ignore_index=True) 具体函数用法: https://pandas.pydata.org/pandas-docs/stable

  • Pandas自定义shift与DataFrame求差集的小技巧

    目录 Pandas的高级shift偏移 Datafream对象求差集 总结 大家好,我是小小明.今天分享两个小技巧: Pandas的高级shift偏移 有很多玩量化的朋友经常碰到类似这样的问题: 其中有位量化大佬居然在半年后的今天又问了我一遍怎么实现这样的效果,他居然忘了我之前给他写过实现.为了避免有人再碰到类似的问题,特别写下此文. 我们知道Pandas默认的API是不支持这样的操作的,这个只能自己想办法实现.下面我借助数值索引实现这样的功能,并封装起来. 最终我们封装的方法如下: impor

  • pandas实现数据合并的示例代码

    目录 一. concat--数据合并 1.1 概述 1.2 指定合并的轴方向--axis 1.3 指定合并轴另外一个轴标签是否合并--join 1.4 指定合并轴原标签是否需要变化--ignore_index 1.5 指定合并轴方向新的index,便于区分数据--keys 1.6 指定合并轴方向新的index 的含义名称,一般和keys一起使用,让合并后的数据更直观--names 1.7 指定合并时是否允许合并轴上有重复标签--verify_integrity 二. merge--数据连接 2.

  • pandas实现数据可视化的示例代码

    目录 一.概述 1.1 plot函数参数 1.2 本文用到的数据源说明 二.折线图--kind='line' 三.柱状图--kind='bar' 3.1 各组数据(列)分开展示 3.2 各组(列)数据合并展示--stacked 3.3  横向柱状图--kind='barh' 四.直方图--kind='hist' 4.1 概述 4.2 自定义直方图横向区间数量 4.3 多子图展示多序列数据 4.4 一维数据密度图--kind='kde' 4.5 累积直方图--cumulative = True 五

  • JS数组交集、并集、差集的示例代码

    本文介绍了JS数组交集.并集.差集,分享给大家,具体如下: 由于下面会用到ES5的方法,低版本会存在兼容,先应添加对应的polyfill Array.prototype.indexOf = Array.prototype.indexOf || function (searchElement, fromIndex) { var index = -1; fromIndex = fromIndex * 1 || 0; for (var k = 0, length = this.length; k <

  • 一文教你向Pandas DataFrame添加行

    目录 示例1:向PandasDataFrame添加一行 示例2:向PandasDataFrame添加几行 总结 您可以使用df.loc()函数在Pandas DataFrame的末尾添加一行: #add row to end of DataFrame df.loc[len(df.index)] = [value1, value2, value3, ...] 您可以使用df.append()函数将现有 DataFrame 的几行附加到另一个 DataFrame 的末尾: #append rows

  • JS实现的集合去重,交集,并集,差集功能示例

    本文实例讲述了JS实现的集合去重,交集,并集,差集功能.分享给大家供大家参考,具体如下: 1. js 实现数组的集合运算 为了方便测试我们这里使用nodejs,代码如set_operation.js function array_remove_repeat(a) { // 去重 var r = []; for(var i = 0; i < a.length; i ++) { var flag = true; var temp = a[i]; for(var j = 0; j < r.lengt

  • Python Dataframe 指定多列去重、求差集的方法

    1)去重 指定多列去重,这是在dataframe没有独一无二的字段作为PK(主键)时,需要指定多个字段一起作为该行的PK,在这种情况下对整体数据进行去重. Attention:主要用到了drop_duplicates方法,并设置参数subset为多个字段名构成的数组. 具体代码如下: >>>import pandas as pd >>>data={'state':[1,1,2,2,1,2,2],'pop':['a','b','c','d','b','c','d']} &

  • pandas实现按行选择的示例代码

    目录 1.自定义行索引 2. 按普通索引选择数据 2.1 按普通索引选择单行数据 2.2 按行索引选择多行数据 3.按位置索引选择数据 3.2 按位置索引选择多行数据 4.选择连续多行数据 5.选择满足条件的行 5.1单个条件选择 5.2 多个条件选择 5.2.1 多个条件是且的关系 5.2.2 多个条件是或的关系 本文所用到的Excel表格内容如下: 1.自定义行索引 dataframe读取Excel表格时是由自定义行索引的.这里为了展示效果,先进行自定义行索引的操作 import panda

随机推荐