-
subset
: 列表的形式填写要进行去重的列名,默认为
None
,表示根据所有列进行。
-
keep
: 可选参数有三个:
first
、
last
、
False
, 默认值
first
。其中,
(1)
first
表示: 保留第一次出现的重复行,删除后面的重复行。
(2)
last
表示: 删除重复项,保留最后一次出现。
(3)
False
表示: 删除所有重复项。
-
inplace
:默认为
False
,删除重复项后返回副本。
True
,直接在原数据上删除重复项。
✪ 栗子 ✪
首先创建一个
DataFrame
。
import pandas as pd
dic = {'name':['a', 'b', 'c', 'd'], 'comment':['abc', '真棒', '真棒', '123']}
df = pd.DataFrame(dic)
使用 drop_duplicates
去除重复值,如果不指明 subset
,那么默认根据所有列来考虑,即当某两行数据所有列都重复时进行去重。
df.drop_duplicates(keep='first', inplace=True)
subset
默认为None
,根据所有列考虑,1
,2
行虽然comment
相同,但name
不相同,故保留,使用时根据具体情况进行选择。
现在设置 subset
为 comment
即可删除该列重复值。
df.drop_duplicates(subset=['comment'], keep='first', inplace=True)
注意:此时索引没有重置,如有需要可使用 reset_index()
重置索引。
df.reset_index(drop=True, inplace=True)
对于刚入门 Python
或是想要入门 Python
的小伙伴,可以通过下方小卡片联系作者,一起交流学习,都是从新手走过来的,有时候一个简单的问题卡很久,但可能别人的一点拨就会恍然大悟,由衷的希望大家能够共同进步。另外还有本人整理的近千套模板,百本优质电子书资源,等你领取!
关注小卡片,一起学习Python,领取资料👇🏻
最近接到一个需求,有一个大该有几十万条的Excel的文件,需要以某一列进行去重后并保存,下面我改了一个小测试,一起来看看吧!
python对excel去重
python对excel文件去重
这是一个非常非常强大的库,这里面有着处理数据特别简单方便的方法;
下来介绍到就是用于数据去重的drop_duplicate方法
这个方法是对DataFrame格式的数据,去除特定列下面的重复行。返回DataFrame格式的数据。
这个方法里面有三个可填参数:
DataFrame.drop_duplicates(subset=None, keep=‘f
import pandas as pd
student_dict = {"name": ["Joe", "Nat", "Harry", "Nat"], "age": [20, 21, 19, 21], "marks": [85.10, 77.80, 91.54, 77.80]}
# Create DataFrame from dict
student_df = pd
pandas 行去重直接使用duplicated()就行
列去重有多种方法:
1、Monitorallall.drop(Monitorallall.columns[0:2], axis=1, inplace=True) 本质上是获取列名然后删除,会把所有的重复列名的列都删除,不能使用
2、使用转置后类似删除行删除,再转置回来
Monitorallall=resultall[columnslist].T.drop_duplicates().T
但是会有行丢失
3、使用Monitorallall = resul
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
去重获取唯一值是常见的需求,下面我们看看pandas里面如何实现去重。
直接看代码
import pandas as pd
def test():
df = pd.DataFrame({"c1": [1, 1, 2, 3, 1], "c2": [10, 20, 30, 40, 50]})
print(df)
print()
第二个想法:只保留第一次出现的重复行
第三个想法:保留最后一次出现的重复行
这三个想法都可以用pandas中自带一个方法实现。 DataFrame.drop_duplicates()
具体实现如下:
import pandas as pd
newdata=pd.DataFrame([[1,...