python 이름에 번호가 붙은 변수 for문 에서 사용하는 법.
조회수 2746회
안녕하세요 쥬피터 노트북으로 파이썬 실행하고있는데
변수에 대한 for 문을 어떻게 작성해야할지 잘 몰라서 질문드립니다.
변수는 Year1부터 Year10까지 있는 상태입니다.
# Year1 형변환
index = 1
while(index<=57):
colname = Year1.columns[index]
col = getattr(Year1, colname)
Year1[colname] = col.astype(float)
index+=1
col = getattr(Year1, 'Y')
Year1['Y'] = col.astype(int)
# Year2 형변환
index = 1
while(index<=57):
colname = Year2.columns[index]
col = getattr(Year2, colname)
Year2[colname] = col.astype(float)
index+=1
col = getattr(Year2, 'Y')
Year2['Y'] = col.astype(int)
이런식으로 Year 뒤에있는 숫자만 바꾸는 for문을 어떻게 작성해야할까요??
도와주시면 정말 감사드리겠습니다!!
1 답변
-
for YearN in [Year1, Year2, Year3, Year4]: # 반복되는 코드
리스트에 바꾸는 변수들을 집어놓고 하나씩 꺼내서 반복되는 코드를 루프안에서 작성하시면 될 듯 합니다.
코드를 보니까 수치값들이 텍스트로 읽혀서 수치로 바꾸려는 것 같네요. 너~무 복잡하게 하고 있어요.
데이터 프레임에 전체에 대해서
astype(float)
을 해도 됩니다. 아니면to_numeric
을 쓰는 게 더 좋아보이기도 합니다.- 추가질문 :
for YearN in [Year1, Year2]: YearN = YearN.drop('col', 1)
로 실행해 봤는데, 변경이 되지 않는다. - 답변 :
for YearN in [ Year1, Year2] : YearN.drop('col', axis=1, inplace=True)
처럼inplace=True
로 실행해 보세요.YearN
이 루프안에서만 유효한 변수이기 때문에 위와 같은 방법으로 안되는 것 같습니다.
- 추가질문 :
댓글 입력