我在 CSV 中有一些数据,我想对其进行一些分析,以检查数据的质量。我一直在使用 Pandas,因为从 CSV 加载数据非常容易。
我想知道什么是比较一系列值中的所有值以查看它是否存在于另一个值列表中的最有效方法?我想这样做是为了检查一个值中是否有任何错误CSV。然后我将使用这些值来尝试清理数据。数据可能非常大。
例如。
我有一个 CSV,其中包含人们列出的居住地郊区的数据。其中许多都是手动输入的,可能容易出现拼写错误、拼写错误等。
为了检查这一点,我有一个包含有效郊区名称的列表。我将迭代一系列中的每个值,并将其与有效郊区列表中的每个值进行比较。然后返回所有无效的唯一值。
从 csv 中读取值
df = read_csv(“user_address”)
提取我想要使用的系列(郊区),并从系列中获取所有唯一的字符串,以减少我必须执行的比较方法的数量
series = df['Suburb'].unique()
迭代每个唯一的字符串,查看它是否与列表中存储的任何有效郊区名称匹配
L = ......list of suburbs for value in series: if value not in L: print value #Will use value for something more in reality
返回与任何有效郊区名称都不匹配的字符串
最佳答案
isin()
方法为您完成此操作,并且是 pandas 的一部分。它的功能是将列与值数组进行比较,如果 pandas 数据框中的值在数组中,则返回 True,否则返回 False。
values_not_in_array = df[~df.Suburb.isin(L)].Suburb
values_in_array = df[df.Suburb.isin(L)].Suburb
关于python - 使用 Pandas 和有效值列表检测 CSV 列中的拼写错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577020/