我有一个看起来像这样的csv文件:
patient_id, age_in_years, CENSUS_REGION, URBAN_RURAL_STATUS, YEAR
11511, 7, Northeast, Urban, 2011
9882613, 73, South, Urban, 2011
32190339, 49, West, Urban, 2011
32190339, 49, West, Urban, 2011
32190339, 49, West, Urban, 2011
32190339, 49, West, Urban, 2011
32190339, 49, West, Urban, 2011
32190339, 49, West, Urban, 2011
...
第一列(即Patient_id)是索引,您可以看到同一患者有多个条目。我希望我的代码在使用导入数据时忽略这些多个条目,pandas
但是我不确定该怎么做。目前,我正在使用以下代码:
df = pd.read_csv(filename, index_col = 0)
df.drop_duplicates()
在代码的进一步内容中,我有一个表示以下内容的函数:
def URSTATUS_to_numeric(a):
if a == 'Urban':
return 0
if a == 'Rural':
return 1
if a == 'NULL':
return 2
当我调用此函数并使用它打印时df.drop_duplicates()
,这是我得到的:
df['URSTATUS_num'] = df['URBAN_RURAL_STATUS'].apply(URSTATUS_to_numeric)
print(df.drop_duplicates(['URSTATUS_num']))
>>> patient_id URSTATUS_num
11511 0
129126475 1
151269094 NaN
因此,基本上,它会将URSTATUS_num
列作为参考删除重复项。但是,我希望代码patient_id
在执行drop_duplicates()
操作时始终引用。谁能帮忙吗?
我不认为您在阅读它们时可以忽略它们,但是一旦阅读它们,您可以使用轻松删除它们drop_duplicates
。
df = pd.read_csv(filename, index_col = 0)
>>> df.drop_duplicates()
patient_id age_in_years CENSUS_REGION URBAN_RURAL_STATUS YEAR
0 11511 7 Northeast Urban 2011
1 9882613 73 South Urban 2011
2 32190339 49 West Urban 2011
编辑:
您可能只想调用一次,例如
df = pd.read_csv(filename, index_col = 0).drop_duplicates()
根据基础数据的整洁度,您可能首先需要进行预处理以去除空格等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句