pandas ValueError: Must pass 2-d input 오류 해결하기
소개
Pandas 라이브러리를 사용하다가 'ValueError: Must pass 2-d input' 오류가 발생하는 경우가 종종 있습니다. 이 오류는 DataFrame 또는 Series를 생성할 때 2차원 입력 데이터를 전달하지 않았을 때 주로 발생합니다. 이 글에서는 이 오류가 나오게 된 원인과 여러 가지 해결 방법을 소개하겠습니다.
에러 발생 예시 코드
우선, 'ValueError: Must pass 2-d input' 오류가 발생할 수 있는 간단한 예시 코드를 확인해 보겠습니다.
import pandas as pd
# 단일 리스트를 사용하여 DataFrame 생성
data = [1, 2, 3, 4, 5]
df = pd.DataFrame(data)
print(df)
에러 해결 방법
1. 리스트를 리스트로 감싸기
DataFrame은 2차원 배열을 요구합니다. 따라서 단일 리스트를 사용하고 있다면, 이 리스트를 또 다른 리스트로 감싸주어야 합니다.
import pandas as pd
# 리스트를 또 다른 리스트로 감싸기
data = [[1], [2], [3], [4], [5]]
df = pd.DataFrame(data)
print(df)
2. 딕셔너리로 데이터 프레임 만들기
Pandas DataFrame은 딕셔너리 형태로도 만들 수 있습니다. 이 경우, 각 키는 열의 이름이 되고, 값은 열의 데이터가 됩니다.
import pandas as pd
# 딕셔너리를 사용하여 DataFrame 생성
data = {
'Numbers': [1, 2, 3, 4, 5]
}
df = pd.DataFrame(data)
print(df)
3. Numpy 배열 사용하기
Numpy 배열을 이용해 2차원 배열을 만들어서 DataFrame을 생성할 수도 있습니다. 적절한 형태로 변환해 주면 됩니다.
import pandas as pd
import numpy as np
# Numpy 배열 생성 후 DataFrame으로 변환
data = np.array([[1, 2], [3, 4], [5, 6]])
df = pd.DataFrame(data, columns=['Col1', 'Col2'])
print(df)
마무리
이 글에서는 Pandas에서 발생하는 'ValueError: Must pass 2-d input' 오류에 대해 간단히 알아보고, 해결 방법에 대해 살펴보았습니다. 리스트를 이중 리스트로 감싸거나, 딕셔너리 또는 Numpy 배열을 사용하는 방법으로 문제를 해결할 수 있습니다. Pandas를 사용할 때는 항상 적절한 데이터 형식을 유지하는 것이 중요하며, 이를 통해 오류를 예방할 수 있습니다.