如何解决Pandas:如何删除特定数量的重复行?
希望你一切顺利。 所以我想删除特定数量的重复行。让我通过一个例子来解释:
import React,{useState} from 'react'
所以我们有基于 A 列的重复行,因此对于 'foo' 我想删除 2 个重复行,例如对于 'xxx' 我只想删除一行。 方法 drop_duplicates 可以保留 0 或 1 行,所以它对我没有帮助。
提前致谢。
解决方法
可能不是最佳解决方案,但此方法有效:
df = pd.DataFrame({
'A': ['foo','foo','bar','xxx','xxx'],'B': [2,np.nan,1,8,9,4,9],'C': [3,10,6]
})
nb_drops = {'foo':2,'xxx':1}
df2 = pd.DataFrame()
for k,v in nb_drops.items():
df2 = df2.append(df[df['A'] == k].head(v))
df = df.drop_duplicates(subset=['A'])
df = df.merge(df2,how='outer')
df
给予
A B C
0 foo 2.0 3.0
1 bar 8.0 NaN
2 xxx 9.0 10.0
3 foo NaN 9.0
,
我制作了这个代码并且它有效......
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': ['foo',6]
nb_drops = {'foo':2,'xxx':1}
rows_to_delete = []
for item in nb_drops :
indices_item = list(df[df['A'] == item].index)
rows_to_delete += range(indices_item[-1] - nb_drops[item] + 1,indices_item[-1] + 1)
df.drop(rows_to_delete,inplace = True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。