본문 바로가기
개발일지/Pandas

판다스(pandas) valueerror: shape of passed values is (4, 1), indices imply (4, 4)

by 다니엘의 개발 이야기 2022. 6. 16.
320x100
new_row_df = pd.DataFrame(['n1', 'n2', 'n3', 'n4'], columns=['A', 'B','C','D'])
print(new_row_df)

와 같이 DataFrame에 기존에 있던 컬럼4개에 각 4개의 값을 추가해주려고 할때 

 

ValueError: Shape of passed values is (4, 1), indices imply (4, 4)

 

라는 에러가 떴다.

 

왜그럴까?

 

우선 저 value error를 직역해보자면

이미 지나간 값이 4와 1인데

 

인덱스들(indices)이 암시(imply)하는 바는 4와 4이다.

즉, 내가 4개의 값을 4개의 열(세로)에 추가해주려고 하는데, 그러기엔 내가 입력한 값이

행(가로)로 넣어주려는 값이 4개고 지정된 열(세로)는 1개라는 것이다.

 

따라서 DataFrame에 행(가로)에 입력하고자 하는 값의 수와 column(열,세로)값의 수에 맞춰주면 된다.

나의 경우는 DataFrame에 넣어줄 값을 1개의 리스트화로 묶어주어서 내가 넣고하는 자료도 1개, 암시하는바도 1개로

만들어 줌으로써 잘 해결되었다.

new_row_df = pd.DataFrame([['n1', 'n2', 'n3', 'n4']], columns=['A', 'B','C','D'])
print(new_row_df)
300x250