inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]

try , except 문 관련 질문 있어요

183

러시안블루

작성한 질문수 10

0

    doc = pd.read_csv(PATH + filename, encoding='utf-8-sig')  # 1. csv 파일 읽기
    try:
        doc = doc[['Country_Region', 'Confirmed']]  # 2. 특정 컬럼만 선택해서 데이터프레임 만들기
    except:
        doc = doc[['Country/Region', 'Confirmed']]  # 2. 특정 컬럼만 선택해서 데이터프레임 만들기
        doc.columns = ['Country_Region', 'Confirmed']

 

수업 내용 중 위 코드는

 

라는 의미잖아요?

 

그런데 실무를 하다보면 손으로 입력했을 시

Country-Region 으로도 입력되어 있을 수도

Country.Region 으로도 입력되어 있을 수도 있잖아요?

실수의 형태는 다양할테고요...

 

어쨌든 Country_Region 컬럼이 아니면 Country_Region 컬럼으로 바꿔달라! 라는 명령어를 쓰려면

 

try:

doc = doc[['Country_Region', 'Confirmed' ]]

except :

doc.column = ['Country_Region', 'Confirmed']

 

으로 작성하면 될란지요....

 

 

 

 

 

python pandas

답변 1

0

잔재미코딩 DaveLee

안녕하세요. 답변 도우미입니다.

주어진 코드는 pandas 라이브러리를 이용하여 CSV 파일에서 특정 컬럼들만 선택하여 데이터프레임을 만드는 과정을 보여줍니다. 그리고 예외 처리를 통해 만약 'Country_Region'이라는 컬럼이 없을 경우 'Country/Region'이라는 컬럼을 찾아서 그 컬럼의 이름을 'Country_Region'으로 바꾸어주는 로직을 포함하고 있습니다.

하지만 제시하신 실무 상황에서 'Country_Region' 컬럼의 이름이 다양한 방식으로 입력될 수 있기 때문에, 여러 다른 가능성을 고려한 코드를 작성해야 합니다. 예외 처리를 사용해서는 모든 경우의 수를 다룰 수 없습니다. 대신 컬럼 이름에 대한 검사와 변환을 일반화하는 로직을 작성해야 합니다.

예를 들어, 'Country-Region', 'Country.Region' 등과 같은 다양한 변형이 있을 수 있으므로, 다음과 같은 코드를 작성할 수 있습니다:

```python

import pandas as pd

doc = pd.read_csv(PATH + filename, encoding='utf-8-sig') # 1. csv 파일 읽기

# 기대하는 컬럼명

expected_column = 'Country_Region'

# 현재 데이터프레임의 컬럼명을 확인하고, 기대하는 형식으로 변경하기

for col in doc.columns:

if col.replace('-', '_').replace('/', '_').replace('.', '_') == expected_column:

doc.rename(columns={col: expected_column}, inplace=True)

break

try:

doc = doc[[expected_column, 'Confirmed']] # 2. 특정 컬럼만 선택해서 데이터프레임 만들기

except KeyError as e:

print(f"Error: {e}. The expected column is not found in the dataframe.")

```

위 코드는 각 컬럼명에 대해 문자 '-', '/', '.' 을 '_' 로 치환하고 기대하는 컬럼명 'Country_Region'과 일치하는지 확인합니다. 만약 일치한다면 해당 컬럼의 이름을 변경하고, 그 후 원하는 컬럼만 선택합니다.

'KeyError'를 사용하는 예외 처리는 만약 'Country_Region' 컬럼이 존재하지 않을 때 발생할 수 있는 에러를 처리하기 위해 사용됩니다. 실제 실무에서는 데이터에 따라 이러한 변환 로직을 더 추가하거나 조정해야 할 수도 있습니다.

감사합니다.

잔재미코딩 드림

0

러시안블루

네 감사합니다.

Python 3 표시 없습니다.

0

57

1

강의실습 말고 강의에 대한 자료(pdf)가 없을까요?

0

68

1

구글 코랩과 아나콘다

0

82

1

강의와 다르게 오류가 뜨는 이유가 뭘까요?

0

99

1

COVID-19-master 관련 등 자료 누락

0

86

1

수업자료에 python_core_summary.ipynb 파일이 포함되어 있지 않습니다!

1

95

1

json.dumps관련된 질문

0

72

1

빅분기대비

0

112

1

파이썬으로 Plain Text 포멧 파일 다루기 연습문제 질문

0

93

1

강의자료 어디서 다운로드받나요?

0

139

1

pandas 라이브러리의 quotechar 인자에 대해 질문드립니다

0

101

1

iplot 에러 문제

1

200

1

플래그

0

75

1

플래그 라이브러리

0

85

1

CSV 파일 쓰기 다른 기법(사전 타입으로 쓰기) 관련

0

179

1

CSV 파일 읽을 때 오류

0

193

1

read() 함수 사용할 때 3번째 줄에 data로 출력 또는 print(data)로 출력 차이

0

136

1

강의 교재 및 실습 파일 제공되나요?

0

181

1

deep_data_and_visual 파일에서 에러가 납니다.

0

182

1

apply()함수

0

201

1

pandas groupby sum 질문

1

272

1

pandas_eda 자료 맨아래 heatmap 숫자가 안나옵니다

0

351

2

pandas_eda 힛맵에서 숫자가 안떠요

0

255

1

수업 자료에 pandas_basic 파일이 없습니다..!

0

277

1