本文,我们讲述Pandas如何去除重复项的操作,我们选择一个评价数据集来演示如何删除特定列上的重复项,如何删除重复项并保留最后一次出现,以及drop_duplicates的默认用法

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

这个drop_duplicate方法是对DataFrame格式的数据,去除特定列下面的重复行。

返回删除重复行的 DataFrame。 考虑某些列是可选的。索引(包括时间索引)将被忽略。

返回DataFrame格式的数据。

  • subset : column label or sequence of labels, optional
    用来指定特定的列,默认所有列
  • keep : {‘first’, ‘last’, False}, default ‘first’
    删除重复项并保留第一次出现的项
  • inplace : boolean, default False
    是直接在原来数据上修改还是保留一个副本

构建包含拉面评级的数据集

df = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
    'rating': [4, 4, 3.5, 15, 5]

数据集数据格式

df
brand style rating
0 Yum Yum cup 4.0
1 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0

默认情况下,它会根据所有列删除重复的行

df.drop_duplicates()
 

brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5
3 Indomie pack 15.0
4 Indomie pack 5.0

要删除特定列上的重复项,请使用subset

df.drop_duplicates(subset=['brand'])
 

brand style rating
0 Yum Yum cup 4.0
2 Indomie cup 3.5

要删除重复项并保留最后一次出现,请使用 keep

df.drop_duplicates(subset=['brand', 'style'], keep='last')
 

brand style rating
1 Yum Yum cup 4.0
2 Indomie cup 3.5
4 Indomie pack 5.0

本文,我们讲述Pandas如何去除重复项的操作,我们选择一个评价数据集来演示如何删除特定列上的重复项,如何删除重复项并保留最后一次出现,以及drop_duplicates的默认用法
一、drop_duplicates函数用途 pandas中的drop_duplicates()函数可以通过SQL中关键字distinct的用法来理解,根据指定的字段对数据集进行去重处理。 二、drop_duplicates()函数的具体参数 DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False)
根据数据的不同情况及处理数据的不同需求,通常会分为两种情况,一种是去除完全重复的行数据,另一种是去除某几列重复的行数据,就这两种情况可用下面的代码进行处理。 1. 去除完全重复的行数据 data.drop_duplicates(inplace=True) 2. 去除某几列重复的行数据 data.drop_duplicates(subset=['A','B'],keep='first',inpla...
1、不定义任何参数,完全删除重复的行数据2、去除重复的几列行数据。drop_duplicates(self, subset: 'Optional[Union[Hashable, Sequence[Hashable]]]' = None, keep: 'Union[str, bool]' = 'first', inplace: 'bool' = False, ignore_index: 'bool' = False) DataFrame with duplicate row
drop_duplicate方法是对DataFrame格式的数据,去除特定列下面的重复行。返回DataFrame格式的数据 df.drop_duplicates(keep= , subset=[], inplace= ) keep: {‘first’, ‘last’, False},默认为’first’ 保留。保留第一个(first)/最后一个(last)/不保留(False)重复 subset:默认所有列 指定的列。即需要删除哪些列中重复,列用’'说明,用,隔开 inplace : {‘Tru
import pandas as pd data=pd.DataFrame({'产品':['A','A','A','A'],'数量':[50,50,30,30]}) pandas判断dataframe是否含有重复行数据用:df.duplicated()  第一次出现的数据为False.重复的数据行就被记录为True。 去掉重复行数据使用data.drop_duplicates().  可以看到索引乱了,我们使用data.reset_index(),里面的参数drop=True,表明要舍掉原来的索引,不然
drop_duplicates为我们提供了数据去重的方法,那怎么得到哪些数据有重复呢? 实现步骤: 1、采用drop_duplicates对数据去两次重,一次将重复数据全部去除(keep=False)记为data1,另一次将重复数据保留一个(keep=’first)记为data2; 2、求data1和data2的差集即可:data2.append(data1).drop_duplicates(keep=False) 以上这篇pandas取出重复数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
pandas如何去除重复值 在我们做数据分析时,我们所要处理的数据中难免会出现重复的数据,有些是我们需要的,有些是我们不需要的,甚至还会影响我们接下来数据分析的准确度。接下来,给大家介绍去除重复值的方法。 planets = pd.read_csv('planets.csv') print(planets.head(10)) planets.drop_duplicates(subset=['method','year'],keep='first',inplace=True) print(planets.head(10)) 咱们先看一下结果: 接下来我们解释一下: 首先read_csv读取数
最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的目开发流程,手把手教大家写个python小游戏,目来自《Python编程从入门到实践》(本文将原目中的部分错误进行修改完善,PS:强烈推荐这本书,真的很赞),来感受下其中的有趣之处。本次开发的游戏叫做alien invasion。 安装pygame...
skew定义偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。偏度(Skewness)亦称偏态、偏态系数。 表征概率分布密度曲线相对于平均值不对称程度的特征数。直观看来就是密度函数曲线尾部的相对长度。 定义上偏度是样本的三阶标准化矩: skew(X)=E[(X−μσ)3](1)skew(X)=E[(\frac{X-\mu}{\sigma})^3]......
在数据结构中,要检索或查找一个数组中的数,可以使用线性查找或二分查找两种方法。 1. 线性查找:从数组的第一个元素开始逐个比较,直到找到目标元素或者遍历整个数组。时间复杂度为O(n),其中n为数组的长度。 下面是一个用C语言实现线性查找的例子: #include <stdio.h> int linear_search(int arr[], int n, int target) { for (int i = 0; i < n; i++) { if (arr[i] == target) { return i; return -1; int main() { int arr[] = {1, 3, 5, 7, 9, 11}; int n = sizeof(arr) / sizeof(arr[0]); int target = 7; int index = linear_search(arr, n, target); if (index == -1) { printf("The target element is not found in the array.\n"); } else { printf("The target element is found at index %d.\n", index); return 0; 2. 二分查找:对于已排序的数组,可以使用二分查找算法来快速查找目标元素。时间复杂度为O(log n),其中n为数组的长度。 下面是一个用C语言实现二分查找的例子: #include <stdio.h> int binary_search(int arr[], int n, int target) { int left = 0, right = n - 1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; return -1; int main() { int arr[] = {1, 3, 5, 7, 9, 11}; int n = sizeof(arr) / sizeof(arr[0]); int target = 7; int index = binary_search(arr, n, target); if (index == -1) { printf("The target element is not found in the array.\n"); } else { printf("The target element is found at index %d.\n", index); return 0; 这里我们使用了一个while循环来实现二分查找,每次将查找范围缩小一半。当查找到目标元素时,返回其下标;否则,继续缩小查找范围。