인공지능 개발일지

[Pandas] DataFrame 셀에 리스트(ndarray) 입력 / ValueError: Must have equal len keys and 본문

인공지능/데이터 분석

[Pandas] DataFrame 셀에 리스트(ndarray) 입력 / ValueError: Must have equal len keys and

Prcnsi 2022. 3. 17. 17:32
728x90

가끔 리스트나 ndarray를 셀에 값으로 넣어야 하는 경우가 있는데 아래 예시와 같은 형식의 df가 있을 때 아래 52라는 값 대신 리스트 [1,2,3]을 해당 셀에 넣고 싶을 때 아래와 같이 코드를 쓰면 제목의 에러가 납니다.


[df 데이터프레임]

  age score
0 23 34
1 45 52 -> [1,2,3]

 

df.iloc [1,1]=[1,2,3] # 에러 나는 코드

그럼 어떻게 해결하나?

아래 두 가지를 바꾸면 보통 해결될 겁니다.

1. iloc/loc ⇨ at으로 바꾸기

2. 리스트(혹은 ndarray)의 자료형을 객체로 바꾸기 ⇨ astype(object)

 


1. iloc/loc ⇨ at으로 바꾸기

아래 조리사와 인공지능의 리스트를 셀에 값으로 넣고 싶으면 아래와 같이 하시면 됩니다.
(model.wv 같은 건 본문과 관계없어서 무시하시면 됩니다)


두 리스트는 모두 float32이고 ndarray입니다.


먼저 위의 예시처럼 바로 리스트를 셀에다 할당하면 오류가 납니다. 왜? 일반적으로 여러 값이 아닌 한 값을 할당하기 때문에 여러 값을 할당할 때는 'iloc'나 'loc'대신 'at'을 사용해 주셔야 합니다.

 

2. 리스트(혹은 ndarray)의 자료형을 객체로 바꾸기 ⇨ astype(object)


그래서 at으로 바꾸면 보통 되시는데 그래도 안 되시면 아래처럼 객체로 type을 바꿔주시면 됩니다.



그럼 원하는 대로 리스트가 값으로 잘 입력된 것을 확인하실 수 있습니다.

감사합니다.

 

 

https://holdemfocus.run.goorm.site/

 

홀덥펍 창업 홀덤포커스 | 홀덤포커스 | 홀덥펍 프랜차이즈 | 홀덥펍 | 홀덥펍 창업 | 프랜차이즈

Contact Us Phone: 010-8700-2129Address: 부산시 부산진구 중앙대로680번가길 74, 5층

holdemfocus.run.goorm.site

 

728x90