작성
·
216
1
답변 2
1
1
안녕하세요.
오류로 혼란을 드려서 죄송합니다. 조 단위 이하의 값을 고려하지 못했네요.
아래의 방법으로 조 단위 백자리 값을 채워볼 수 있습니다.
# "시가총액을" 원본을 "시가총액(억원)"에 새로운 컬럼을 만들어 같은 값을 넣습니다.(사본생성)
df["시가총액(억원)"] = df["시가총액"]
# "시가총액"에 "조"가 들어가지만 천단위가 아니라 , 가 들어가지 않는 값에 조 뒤에 0을 추가하도록 합니다.
df.loc[df["시가총액"].str.contains("조") &
~df["시가총액"].str.contains(","), "시가총액(억원)"] = df["시가총액"].str.replace("조", "조 0")
# "시가총액(억원)"이 잘 변경되었는지 확인합니다.
df.loc[df["시가총액"].str.contains("조") &
~df["시가총액"].str.contains(","), "시가총액(억원)"]
# regex=True 는 수업에서는 사용하지 않았지만 경고메시지가 나와 추가했습니다. 없어도 동작합니다.
df["시가총액(억원)"] = df["시가총액(억원)"].str.replace("억원", "", regex=True)
df["시가총액(억원)"] = df["시가총액(억원)"].str.replace("조|,", "", regex=True)
df["시가총액(억원)"] = df["시가총액(억원)"].str.replace(" ", "", regex=True)
df["시가총액(억원)"] = df["시가총액(억원)"].str.strip()
df["시가총액(억원)"] = df["시가총액(억원)"].astype(int)
df["시가총액(억원)"]
# 변경된 값 확인하기
df.loc[df["시가총액"].str.contains("조") & ~df["시가총액"].str.contains(","), ["시가총액", "시가총액(억원)"]]