Notice
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 알고리즘
- 보안
- sql injection
- 컴퓨터 구조
- 리액트
- html
- webhacking
- 백준 알고리즘
- CodeEngn
- 어셈블리어
- 백준
- writeup
- 웹
- 인공지능
- abex crackme
- 해킹
- php
- 자바스크립트
- 리버싱
- 리눅스
- C언어
- 워게임
- 넘파이
- 회귀 수식
- 리버싱 문제
- 머신러닝
- MySQL
- 웹해킹
- webhacking.kr
- 리버싱 워게임
Archives
- Today
- Total
인공지능 개발일지
[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:32728x90
가끔 리스트나 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/
728x90
'인공지능 > 데이터 분석' 카테고리의 다른 글
[데이터 분석] Pandas 사용법 요약 정리와 활용 팁 (함수의 조합 활용하기) (1) | 2022.05.20 |
---|---|
[데이터 분석] 넘파이(NumPy) 튜토리얼 겸 기초 총 정리 (feat. reshape에서 -1의 의미) (0) | 2022.05.01 |
[Pandas] 데이터프레임 셀 반복문 빠르게 돌리는 법 / Pandas를 Numpy로 변환 (0) | 2022.02.28 |
[Python] Pandas DataFrame을 numpy 배열로 변환하는 방법 (0) | 2022.02.22 |
[Pandas] DataFrame의 mean() 특정 열 누락, 전체 평균 값 안 나올 때 해결법 (0) | 2022.01.24 |