网络编程
位置:首页>> 网络编程>> Python编程>> Python Dataframe 指定多列去重、求差集的方法

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

作者:jasonwang_  发布时间:2022-01-12 00:40:19 

标签: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']}
>>>frame=pd.DataFrame(data)
>>>frame
popstate
0a1
1b1
2c2
3d2
4b1
5c2
6d2
>>>frame.drop_duplicates(subset=['pop','state'])
popstate
0a1
1b1
2c2
3d2

2)求差集

假设有两个dataframe为a和b,a和b可以是相互包含的关系,现在想要将a中和b重复的内容去掉,也就是求差集,步骤如下:

(1)需要对两个dataframe进行去重。

(2)利用append方法,a=a.append(b)

(3)再次利用append方法,a=a.append(b)

(4)去重,利用drop_duplicates方法,a=a.drop_duplicates(),以及设置参数keep=False,意思就是只要有重复,重复的记录都去掉。(keep默认='first',也就是保留第一条记录)

具体代码如下:


>>>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)
>>>a
popstate
0a1
1b1
2c2
>>>b=pd.DataFrame(data_b)
>>>b
popstate
0b1
1c2
2d3
>>>a = a.append(b)
>>>a = a.append(b)
>>>result = a.drop_duplicates(subset=['pop','state'],keep=False)
>>>result
popstate
0a1

来源:https://blog.csdn.net/jasonwang_/article/details/78797458

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com