본문 바로가기

Programming Language/[Python]

[Python] ValueError: If using all scalar values, you must pass an index

728x90
반응형

에러 원인 코드)

import pandas as pd

dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame(dict)

 

결과)

ValueError: If using all scalar values, you must pass an index

Dictionary를 DataFrame으로 변환할 때 위의 에러가 발생했다.

에러 원인은 모든 값(Value)이 스칼라이기 때문이다.

 

이 에러 해결 방법은 다음 4가지가 있다.

# 1. index 값 지정
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame(dict, index=[0])
print(df)
#    a  b  c
# 0  1  2  3

# 2. dictionary의 키, 값을 리스트로 변환
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame(list(dict.items()))
print(df)
#    0  1
# 0  a  1
# 1  b  2
# 2  c  3

# 2. dictionary의 키, 값을 리스트로 변환
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame({'0': list(dict.keys()), '1': list(dict.values())})
print(df)
#    0  1
# 0  a  1
# 1  b  2
# 2  c  3

# 2. dictionary의 키, 값을 리스트로 변환
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame({'0': dict.keys(), '1': dict.values()})
print(df)
#    0  1
# 0  a  1
# 1  b  2
# 2  c  3

# 3. pd.DataFrame.from_records() 사용
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame.from_records([dict])
print(df)
#    a  b  c
# 0  1  2  3

# 4. pd.DataFrame.from_dict([]) 사용
dict = {
    'a': 1,
    'b': 2,
    'c': 3,
}
df = pd.DataFrame.from_dict([dict])
print(df)
#    a  b  c
# 0  1  2  3

 

 


Reference

반응형