本文,我们讲述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.r
eset_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循环来实现二分查找,每次将查找范围缩小一半。当查找到目标元素时,返回其下标;否则,继续缩小查找范围。