728x90
반응형
오류 원문이다.
ValueError: If using all scalar values, you must pass an index
제목의 오류를 유발한 코드는 아래와 같다.
corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
data = dart_fss.api.info.emp_sttus(corp_code, '2021', '11011')
df = pd.DataFrame(data['list'])
df = df[['corp_code', 'corp_name', 'sexdstn', 'jan_salary_am']]
#df
doc = {
'기업명': df['corp_name'][0],
'연봉(남)': df[df['sexdstn'] == '남'].iloc[0, 3],
'연봉(여)': df[df['sexdstn'] == '여'].iloc[0, 3],
}
df_result = pd.DataFrame(doc)
df_result
그리고 오류 내용을 조금 더 자세하게 파악한 내용은 아래와 같다.
ValueError Traceback (most recent call last)
Cell In [288], line 15
8 doc = {
9 '기업명': df['corp_name'][0],
10 '연봉(남)': df[df['sexdstn'] == '남'].iloc[0, 3],
11 '연봉(여)': df[df['sexdstn'] == '여'].iloc[0, 3],
12 }
---> 13 df_result = pd.DataFrame(doc) # 오류 발생 부분
14 df_result
이후 머리를 싸매다가 구글링해서 발견한 글에서 해결 방법을 찾았다.
요약하면, DataFrame 생성 시 정해진 값들(scalar values)로 생성할 경우에는 인위적으로 index 설정이 필요하다는 것이다. 그리하여 오류를 벗어난 코드는 아래와 같다.
1 corp_code = df_listed[df_listed['corp_name'] == '카카오'].iloc[0,0]
2 data = dart_fss.api.info.emp_sttus(corp_code, '2021', '11011')
3
4 df = pd.DataFrame(data['list'])
5 df = df[['corp_code', 'corp_name', 'sexdstn', 'jan_salary_am']]
6 #df
7
8 doc = {
9 '기업명': df['corp_name'][0],
10 '연봉(남)': df[df['sexdstn'] == '남'].iloc[0, 3],
11 '연봉(여)': df[df['sexdstn'] == '여'].iloc[0, 3],
12
---> 13 df_result = pd.DataFrame(doc, ignore_index = [0]) # 수정한 코드
14 df_result
728x90
반응형
SMALL
댓글