Pandas를 사용하여 CSV에서 데이터를 읽는 동안 동일한 색인을 가진 여러 항목을 무시하는 방법

우 타라

다음과 같은 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관