Closed jinseungwook closed 8 months ago
%Y-%m 부분을 %Y/%m 로 바꿔보세요
ValueError: time data "2020/12" doesn't match format "%Y-%m", at position 0. You might want to try:
보시다시피 "2020/12"의 형식은 "%Y/%m"의 형식입니다. 나중에 수정이 된 것 같아요.
답변 주셔서 정말 감사합니다. 또 질문이 있는데 여쭈어봐도 괜찮을까요..? z_quality = data_bind_group[['ROE', 'GPA', 'CFO' ]].apply(lambda x: col_clean(x, 0.01, False)).sum( axis=1, skipna=False).to_frame('z_quality') data_bind = data_bind.merge(z_quality, how='left', on=['종목코드', 'SEC_NM_KOR'])
data_bind.round(4).head()
이 코드를 진행 시키면 ValueError: The name SEC_NM_KOR occurs multiple times, use a level number 이런 오류 코드가 뜹니다. 데이터 저장에 문제가 있을까요? 아니면 다른 방법이 있을까요? 감사합니다
전후 상황이나 오류를 캡처해주실 수 있나요? 말씀해주신 내용으로는 정확한 원인이 뭔지 모르겠네요. 아마 SEC_NM_KOR 라는 컬럼명이 두 개 존재하게 되어서 발생하는 것 같은데요...
문제가 해결되셨나요? 저도 어제 같은 문제가 발생했습니다.
기존 코드 z_quality = data_bind_group[['ROE', 'GPA', 'CFO' ]].apply(lambda x: col_clean(x, 0.01, False)).sum( axis=1, skipna=False).to_frame('z_quality') data_bind = data_bind.merge(z_quality, how='left', on=['종목코드', 'SEC_NM_KOR'])
data_bind.round(4).head()
변경 코드 z_quality = data_bind_group[['ROE', 'GPA', 'CFO' ]].apply(lambda x: col_clean(x, 0.01, False)).sum( axis=1, skipna=False).to_frame('z_quality') data_bind = data_bind.merge(z_quality.reset_index(level=0).reset_index(level=0).drop('SEC_NM_KOR', axis=1), how='left', on=['종목코드', 'SEC_NM_KOR'])
data_bind.round(4).head()
저는 이렇게 해결했습니다.
data_bind_group = data_bind.set_index(['종목코드',
'SEC_NM_KOR']).groupby('SEC_NM_KOR', as_index=False)
그룹을 묶을 때 as_index=False
추가해주시면 됩니다.
재무제표 크롤링에서 df['기준일'] = pd.to_datetime(df['기준일'], format='%Y-%m') 이 부분을 실행하게 되면 ValueError: time data "2020/12" doesn't match format "%Y-%m", at position 0. You might want to try:
format
if your strings have a consistent format;format='ISO8601'
if your strings are all ISO8601 but not necessarily in exactly the same format;format='mixed'
, and the format will be inferred for each element individually. You might want to usedayfirst
alongside this.다음과 같은 오류가 뜹니다 해결할 수 있는 방법이 있는지 궁금합니다!