首页 > 解决方案 > 删除 .csv 中的所有行,除了第一个在列中具有重复单元格的行

问题描述

由于一些正则表达式错误,我在.csv文件中有许多行相同但格式略有不同,URL 始终是公共变量。我需要在“tx”列中找到所有重复的 url,并删除除第一个之外的所有内容。

.csv是〜50k行。系统是Windows。

我尝试了什么:

# importing pandas package 
import pandas as pd 

# making data frame from csv file 
data = pd.read_csv("dupes.csv")


# dropping ALL duplicte values 
df = data.drop_duplicates(subset ="TxHash\tx", keep = "first", inplace = True) 

data.to_csv('nodupes.csv', index=False)

所有列的末尾都有 /t,不确定如何摆脱它们,还尝试了许多变体,包括使用 Pandas 设置新标题。尝试了许多解决方案,但大多数导致此错误:

raise KeyError(diff)
KeyError: Index(['TxHash\t'], dtype='object')

标签: pythonpython-3.xpandas

解决方案


中的默认分隔符read_csvis ,,因此对于 tab 是必要的 addsep='\t'并且对于 inplace 操作返回None,所以可能的 2 解决方案是删除它或不分配回:

data = pd.read_csv("dupes.csv", sep='\t')

df = data.drop_duplicates(subset ="TxHash")
print (df)

data.drop_duplicates(subset ="TxHash", inplace=True)
print (data)

推荐阅读