[英]Removing duplicates from a large csv file
另一种快速方法是使用awk
,从命令行运行:
awk -F, '!x[$1,$5]++' file.csv > file_uniq.csv
其中file.csv
是您的文件名,而file_uniq.csv
是您想要删除重复记录的位置($1 和 $5 是列号,1 代表ip
,5 代表cik
)
PS 如果你使用的是 Linux/Mac,你应该有awk
,但可能需要在 Windows 上单独下载
这是一个使用pandas
和reduce
的示例:
from functools import reduce
import pandas as pd
df = reduce(
lambda df_i, df_j: pd.concat([df_i, df_j])
.drop_duplicates(subset=["cik", "ip"]),
pd.read_csv("path/to/csv", chunksize=100000)
)
df.to_csv("path/to/deduplicated/csv")
这避免了一次打开整个文件(改为在 100000 行块中打开它),并在进行时删除重复项。
您可以执行以下操作:
import pandas as pd
df = pd.read_csv('filepath/filename.csv', sep='your separator', header = True, index=False)
df.drop_duplicates(subset=['cik','ip'], keep=False, inplace=True)
df.to_csv('filepath/new_filename.csv', sep= 'your separator', header=True, index=False)
并享受没有重复的 csv。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.