try , except 문 관련 질문 있어요
183
작성한 질문수 10
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']
수업 내용 중 위 코드는
CSV 파일 갖고 올건데
컬럼 Country_Region, Confirmed 만 갖고 올거고
Country/Region 컬럼은 Country_Region 컬럼으로 바꿔줘..
라는 의미잖아요?
그런데 실무를 하다보면 손으로 입력했을 시
Country-Region 으로도 입력되어 있을 수도
Country.Region 으로도 입력되어 있을 수도 있잖아요?
실수의 형태는 다양할테고요...
어쨌든 Country_Region 컬럼이 아니면 Country_Region 컬럼으로 바꿔달라! 라는 명령어를 쓰려면
try:
doc = doc[['Country_Region', 'Confirmed' ]]
except :
doc.column = ['Country_Region', 'Confirmed']
으로 작성하면 될란지요....
답변 1
0
안녕하세요. 답변 도우미입니다.
주어진 코드는 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' 컬럼이 존재하지 않을 때 발생할 수 있는 에러를 처리하기 위해 사용됩니다. 실제 실무에서는 데이터에 따라 이러한 변환 로직을 더 추가하거나 조정해야 할 수도 있습니다.
감사합니다.
잔재미코딩 드림
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





