首页
学习
活动
专区
工具
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-

18.1K31

【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.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

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.

7.8K20

pandas多级索引骚操作!

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

79030

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

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

1.7K20

问与答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 本例可以扩展到更多条件。

3.9K30

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

10100

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

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

6.5K61

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.4K20

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

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

2.6K20

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 直接生成了多层索引,名字就是现有数据列字段

19920

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():统计每个分组中有多少数据...现在我们有一关于全球星巴克店铺统计数据,如果我想知道美国星巴克数量和中国哪个多,或者我想知道中国每个省份星巴克数量情况,那么应该怎么办?

4K20

系统性学会 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.4K30

系统性总结了 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.2K20

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

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

11710

系统性学会 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.2K40

最全面的Pandas教程!没有之一!

获取 DataFrame 一行或多行数据 要获取某一行,你需要用 .loc[] 来索引(标签名)引用这一行,或者用 .iloc[],这行在表位置(行数)来引用。 ?...上面的结果,Sales 列就变成每个公司分组平均数了。 计数 用 .count() 方法,能对 DataFrame 某个元素出现次数进行计数。 ?...因为我们没有指定堆叠方向,Pandas 默认方向堆叠,把每个索引顺序叠加。 如果你想要按列方向堆叠,那你需要传入 axis=1 参数: ? 注意,这里出现了一大堆空。...排序 如果想要将整个表某一列进行排序,可以用 .sort_values() : ? 如上所示,表格变成 col2 列从小到大排序。...要注意是,表格索引 index 还是对应着排序行,并没有因为排序而丢失原来索引数据

25.8K64
领券