首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python】基于某些列删除数据框中的重复值

导入数据处理的库 os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值') #把路径改为数据存放的路径 name = pd.read_csv('name.csv...从结果知,参数为默认值时,是在原数据的copy上删除数据,保留重复数据第一条并返回新数据框。 感兴趣的可以打印name数据框,删重操作不影响name的值。...从结果知,参数keep=False,是把原数据copy一份,在copy数据框中删除全部重复数据,并返回新数据框,不影响原始数据框name。...结果和按照某一列去重(参数为默认值)是一样的。 如果想保留原始数据框直接用默认值即可,如果想直接在原始数据框删重可设置参数inplace=True。...但是对于两列中元素顺序相反的数据框去重,drop_duplicates函数无能为力。 如需处理这种类型的数据去重问题,参见本公众号中的文章【Python】基于多列组合删除数据框中的重复值。 -end-

20.5K31

【Python】基于多列组合删除数据框中的重复值

最近公司在做关联图谱的项目,想挖掘团伙犯罪。在准备关系数据时需要根据两列组合删除数据框中的重复值,两列中元素的顺序可能是相反的。...本文介绍一句语句解决多列组合删除数据框中重复值的问题。 一、举一个小例子 在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。...二、基于两列删除数据框中的重复值 1 加载数据 # coding: utf-8 import os #导入设置路径的库 import pandas as pd #导入数据处理的库...import numpy as np #导入数据处理的库 os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值') #把路径改为数据存放的路径 df =...从上图可以看出用set替换frozense会报不可哈希的错误。 三、把代码推广到多列 解决多列组合删除数据框中重复值的问题,只要把代码中取两列的代码变成多列即可。

14.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Excel公式技巧46: 按出现的频率依次提取列表中的数据并排序

    导语:在《Excel公式技巧44:对文本进行排序》中,我们使用COUNTIF函数并结合SMALL/MATCH/INDEX函数对一系列文本进行排序,无论这些文本中是否存在重复值。...在《Excel公式技巧45:按出现的频率依次提取列表中的数据》中,我们使用MATCH/ISNA/IF/MODE/INDEX函数组合提取一系列文本中不重复的数据并按出现的频率且按原数据顺序来放置数据。...本文将在此基础上,提取不重复的数据,并按出现的次数和字母顺序排序数据。...如下图1所示,列A中是原来的数据,列B中是从列A中提取后的数据,其规则是:提取不重复的数据,并将出现次数最多的放在前面;按字母顺序排列。...显然,Data中的每个数据都在B1:B1中找不到,因此返回{0;0;0;0;0;0;0;0}。我们看看在单元格B4中的公式,公式变为COUNTIF(B 2.

    8.3K20

    pandas多级索引的骚操作!

    我们知道dataframe是一个二维的数据表结构,通常情况下行和列索引都只有一个。但当需要多维度分析时,我们就需要添加多层级索引了。在关系型数据库中也被叫做复合主键。...一种是只有纯数据,索引需要新建立;另一种是索引可从数据中获取。 因为两种情况建立多级索引的方法不同,下面分情况来介绍。 01 新建多级索引 当只有数据没有索引时,我们需要指定索引值,比如下图。...# 数组 # 每个数组对应着一个层级的索引值 arrays = [['北京','北京','上海','上海'],['北大','清华','上交','复旦']] mindex = pd.MultiIndex.from_arrays...sortlevel对索引的不同层级按升降序的方法排序,level指定层级,ascending指定是否升序。...函数可以按指定的顺序进行重新排序,order参数可以是整数的level层级或者字符串的索引名,用法如下。

    1.5K31

    利用query()与eval()优化pandas代码

    的names为空的情况,按照顺序,用ilevel_n表示MultiIndex中的第n列index: # 构造含有MultiIndex的数据框,并重置index的names为None temp = netflix.set_index...MultiIndex的names有内容的情况,直接用对应的名称传入表达式即可: # 构造含有MultiIndex的数据框,并重置index的names为None temp = netflix.set_index...策略之后无法被解析的日期会填充pd.NAT,而缺失值之间是无法进行相等比较的: # 利用assign进行新增字段计算并保存为新数据框 result1 = netflix.assign(years_to_now...但要注意的是eval()中每个新字段的赋值必须写在同一行,否则会出错: netflix.eval(''' years_to_now = 2020 - release_year...,我可以在很多数据分析场景中实现0中间变量,一直链式下去,延续上面的例子,当我们新增了这两列数据之后,接下来我们按顺序进行按月统计影片数量、字段重命名、新增当月数量在全部记录排名字段、排序,其中关键的是

    1.5K30

    (数据科学学习手札92)利用query()与eval()优化pandas代码

    中的第n列index: # 构造含有MultiIndex的数据框,并重置index的names为None temp = netflix.set_index(['title', 'type']);temp.index.names...图11 names不为空的MultiIndex   而对于MultiIndex的names有内容的情况,直接用对应的名称传入表达式即可: # 构造含有MultiIndex的数据框,并重置index的names...策略之后无法被解析的日期会填充pd.NAT,而缺失值之间是无法进行相等比较的: # 利用assign进行新增字段计算并保存为新数据框 result1 = netflix.assign(years_to_now...图13   虽然assign()已经算是pandas中简化代码的很好用的API了,但面对eval(),还是逊色不少 DataFrame.eval()通过传入多行表达式,每行作为独立的赋值语句,其中对应前面数据框中数据字段可以像...,我可以在很多数据分析场景中实现0中间变量,一直链式下去,延续上面的例子,当我们新增了这两列数据之后,接下来我们按顺序进行按月统计影片数量、字段重命名、新增当月数量在全部记录排名字段、排序,其中关键的是新增当月数量在全部记录排名字段

    1.7K20

    Pandas 2.2 中文官方教程和指南(二十五·二)

    的部分 排序 按特定列或有序列的列排序,使用 MultiIndex In [99]: df.sort_values(by=("Labs", "II"), ascending=False) Out[99...的部分 排序 按特定列或有序列的列排序,使用 MultiIndex In [99]: df.sort_values(by=("Labs", "II"), ascending=False) Out[99...对齐和截止日期 基于值而不是计数的滚动计算窗口 时间间隔滚动均值 分割 拆分框架 创建一个数据框列表,根据包含在行中的逻辑进行分割。...对齐和截止日期 基于值而不是计数的滚动计算窗口 按时间间隔计算滚动均值 分割 分割一个框架 创建一个数据框列表,根据行中包含的逻辑进行分割。...要从给定值的每个组合创建数据框,类似于 R 的expand.grid()函数,我们可以创建一个字典,其中键是列名,值是数据值的列表: In [241]: def expand_grid(data_dict

    17600

    问与答81: 如何求一组数据中满足多个条件的最大值?

    Q:在工作表中有一些数据,如下图1所示,我想要获取“参数3”等于“A”、”参数4“等于”C1“对应的”参数5”中的最大值,能够使用公式解决吗? ? 图1 A:这种情况用公式很容易解决。...在单元格F13中输入数组公式: =MAX(IF((参数3=D13)*(参数4=E13),参数5,0)) 记得按Ctrl+Shift+Enter组合键完成输入。...我们看看公式中的: (参数3=D13)*(参数4=E13) 将D2:D12中的值与D13中的值比较: {"A";"B";"A";"B";"A";"A";"B";"A";"B";"A";"A"}=”A”...得到: {TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE} 将E2:E12中的值与E13中的值比较: {"C1";"C2";"C1"...D和列E中包含“A”和“C1”对应的列F中的值和0组成的数组,取其最大值就是想要的结果: 0.545 本例可以扩展到更多的条件。

    4K30

    【数据处理包Pandas】多级索引的创建及使用

    可以将 MultiIndex 视为一个元组对数组,其中每个元组对都是唯一的。...1、基于列索引选取数据 # 基于列的第1层索引选取单列 scores['富强'] # 基于列的第1层索引选取多列,需要使用花式索引 scores[['富强','王亮']] 补充说明: 排序时默认按第一个字符的...scores.sort_index(axis=1,inplace=True) # axis=1指明对列索引按升序排列,注意inplace=True后才能看到排序结果 scores # axis=...# 基于行的单个第1层索引值选取数据 scores.loc[2017] # 基于行的多个第1层索引值选取数据 scores.loc[[2017,2016]] # 基于行的单个第2层索引值选取数据 scores.loc...[(slice(None),2),:] # 不能写成scores.loc[(slice(None),2)]或scores.loc[slice(None),2]的形式 # 基于行的多个第2层索引值选取数据

    2100

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    数据科学家通常将大部分时间花在探索和预处理数据上。当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一。该函数返回一个包含唯一值计数的系列。...默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...默认情况下,结果系列按降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”列的计数。...我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。

    6.7K61

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    数据科学家通常将大部分时间花在探索和预处理数据上。当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一。该函数返回一个包含唯一值计数的系列。...1、默认参数 2、按升序对结果进行排序 3、按字母顺序排列结果 4、结果中包含空值 5、 以百分比计数显示结果 6、将连续数据分入离散区间 7、分组并调用 value_counts() 8、将结果系列转换为...默认情况下,结果系列按降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”列的计数。...我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。

    2.5K20

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎的函数之一。该函数返回一个包含唯一值计数的系列。...默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...默认情况下,结果系列按降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”列的计数。  ...我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。...一个常见的用例是按某个列分组,然后获取另一列的唯一值的计数。例如,让我们按“Embarked”列分组并获取不同“Sex”值的计数。

    3K20

    6种方式创建多层索引

    6种方式创建多层索引MultiIndex pd.MultiIndex即具有多个层次的索引。通过多层次索引,我们就可以操作整个索引组的数据。...本文主要介绍在Pandas中创建多层索引的6种方式: pd.MultiIndex.from_arrays():多维数组作为参数,高维指定高层索引,低维指定低层索引。...pd.MultiIndex.from_tuples():元组的列表作为参数,每个元组指定每个索引(高维和低维索引)。...pd.MultiIndex.from_frame:根据现有的数据框来直接生成 groupby():通过数据分组统计得到 pivot_table():生成透视表的方式来得到 pd.MultiIndex.from_arrays..."age":[23,39,34], "sex":["male","male","female"]}) df 直接生成了多层索引,名字就是现有数据框的列字段

    26720

    Pandas的函数应用、层级索引、统计计算1.Pandas的函数应用apply 和 applymap排序处理缺失数据2.层级索引(hierarchical indexing)MultiIndex索引对

    通过applymap将函数应用到每个数据上 示例代码: # 使用applymap应用到每个数据 f2 = lambda x : '%.2f' % x print(df.applymap(f2)) 运行结果...按值排序 sort_values(by='column name') 根据某个唯一的列名进行排序,如果有其他相同列名则报错。...示例代码: # 按值排序 df4_vsort = df4.sort_values(by=0, ascending=False) print(df4_vsort) 运行结果: 1...因为现在有两层索引,当通过外层索引获取数据的时候,可以直接利用外层索引的标签来获取。 当要通过内层索引获取数据的时候,在list中传入两个元素,前者是表示要选取的外层索引,后者表示要选取的内层索引。...sum, mean, max, min… axis=0 按列统计,axis=1按行统计 skipna 排除缺失值, 默认为True 示例代码: df_obj.sum() df_obj.max

    2.3K20

    系统性的学会 Pandas, 看这一篇就够了!

    :Series、DataFrame和MultiIndex(老版本中叫Panel )。...在pandas中,缺失值使用NaN来标记,如下图所示: 6.1 如何处理nan 按如下步骤进行: (1)获取缺失值的标记方式(NaN或者其他标记方式) (2)如果缺失值的标记方式是NaN 1、删除存在缺失值的...离散化方法经常作为数据挖掘的工具。 7.2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。...使用的工具: pd.qcut(data, q): 对数据进行分组,将数据分成q组,一般会与value_counts搭配使用,统计每组的个数 series.value_counts():统计每个分组中有多少数据...现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?

    4.1K20

    系统性的学会 Pandas, 看这一篇就够了!

    :Series、DataFrame和MultiIndex(老版本中叫Panel )。...在pandas中,缺失值使用NaN来标记,如下图所示: 6.1 如何处理nan 按如下步骤进行: (1)获取缺失值的标记方式(NaN或者其他标记方式) (2)如果缺失值的标记方式是NaN 1、删除存在缺失值的...离散化方法经常作为数据挖掘的工具。 7.2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。...使用的工具: pd.qcut(data, q): 对数据进行分组,将数据分成q组,一般会与value_counts搭配使用,统计每组的个数 series.value_counts():统计每个分组中有多少数据...现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?

    4.6K30

    Pandas 2.2 中文官方教程和指南(十二·一)

    在轴上进行基本索引 分层索引的一个重要特点是,你可以通过标识数据中的子组的“部分”标签来选择数据。...然后,我们将.categories的值作为后续调用cut()的bins参数传递,提供新的数据,这些数据将被分到相同的区间中。...的轴上进行基本索引 分层索引的一个重要特点是,您可以通过标识数据中的子组的“部分”标签来选择数据。...在轴上进行基本索引 分层索引的一个重要特点是,您可以通过标识数据中的子组的“部分”标签来选择数据。...reindex 在轴上具有MultiIndex的不��索引对象之间的操作将按您的预期工作;数据对齐将与元组索引的索引相同: In [35]: s + s[:-2] Out[35]: bar one

    25610

    系统性总结了 Pandas 所有知识点

    Series、DataFrame和MultiIndex(老版本中叫Panel )。...在pandas中,缺失值使用NaN来标记,如下图所示: 6.1 如何处理nan 按如下步骤进行: (1)获取缺失值的标记方式(NaN或者其他标记方式) (2)如果缺失值的标记方式是NaN 1、删除存在缺失值的...离散化方法经常作为数据挖掘的工具。 7.2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。...使用的工具: pd.qcut(data, q): 对数据进行分组,将数据分成q组,一般会与value_counts搭配使用,统计每组的个数 series.value_counts():统计每个分组中有多少数据...现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?

    3.3K20

    系统性的学会 Pandas, 看这一篇就够了!

    :Series、DataFrame和MultiIndex(老版本中叫Panel )。...在pandas中,缺失值使用NaN来标记,如下图所示: 6.1 如何处理nan 按如下步骤进行: (1)获取缺失值的标记方式(NaN或者其他标记方式) (2)如果缺失值的标记方式是NaN 1、删除存在缺失值的...离散化方法经常作为数据挖掘的工具。 7.2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。...使用的工具: pd.qcut(data, q): 对数据进行分组,将数据分成q组,一般会与value_counts搭配使用,统计每组的个数 series.value_counts():统计每个分组中有多少数据...现在我们有一组关于全球星巴克店铺的统计数据,如果我想知道美国的星巴克数量和中国的哪个多,或者我想知道中国每个省份星巴克的数量的情况,那么应该怎么办?

    4.4K40
    领券