티스토리 뷰
파이썬(Python)&판다스(Pandas)&Polars
[Pandas] literal_eval - 문자열 리스트를 list type으로 변환하기
송채채 2022. 10. 24. 17:25데이터 프레임을 다룰 때, 특정 컬럼의 형태가 아래 그림과 같이 형성된 경우가 있다.
하나의 셀에 리스트 형태로 들어있는 문자열이 있으면, type이 str로 인식하기 때문에 이 컬럼을 for문 등의 조건문을 사용할 수 없다.
이를 해결하기 위한 방법으로 ast.literal_eval 함수를 사용할 수 있다.
하나의 문자열만 해결하는 것 보단, 데이터프레임 수준에서 적용할 수 있는 코드를 공유하고자 한다.
데이터프레임의 특정 컬럼의 모든 셀을 한번에 변환하기 위해선, 예외 처리를 포함한 함수를 만들어 lambda를 적용하는 것이 좋다.
아래 코드는, str_to_list(x) 함수를 만들었고, 특정 컬럼에 apply와 lambda를 사용했다.
import pandas as pd
from ast import literal_eval
# 문자열을 리스트로 변환
def str_to_list(x):
try:
if type(x) == str:
return literal_eval(x)
elif type(x) == list:
return x
except: #해당 값이 null값이거나 오류가 있을 때, None을 return 하기
return None
df['컬럼명'] = df['컬럼명'].apply(lambda x: str_to_list(x))
df['결측값수'] = df['결측값수'].apply(lambda x: str_to_list(x))
참고블로그
반응형
'파이썬(Python)&판다스(Pandas)&Polars' 카테고리의 다른 글
[Pandas] 여러 파일의 행 수, 열 수를 하나의 데이터 프레임으로 만들기(listdir(), shape()) (0) | 2023.02.02 |
---|---|
[Pandas] 서로 다른 데이터프레임에서 특정 값을 매핑해 새로운 컬럼 만들기 (0) | 2023.01.10 |
[Pandas] combine_first - 두 컬럼 중 먼저 나온 값을 기준으로 새로운 컬럼 생성하기 (2) | 2022.10.24 |
[Pandas] 한글 깨짐 방지를 위해 인코딩은 'UTF-8-SIG'로 저장하기 (1) | 2022.10.24 |
[Pandas] '', NaN 값을 None으로 변환하기 (0) | 2022.10.24 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- p-tuing
- elasticsesarch
- knowledgegraph
- 지식그래프
- python
- knowlegegraph
- 3d-force-graph
- vscode
- psycopg
- python'
- PostgreSQL
- pandas
- Encoding
- polars
- 지식그래프임베딩
- hadoop
- volar
- PEFT
- TextRank
- KRworkrank
- rdflib
- Postgis
- writerow
- LLM
- SPARQL
- Vue3
- v-tooltip
- MongoDB
- 키워드추출
- difflib
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함