반응형
numpy.genfromtxt
로 csv 파일을 읽으려고하는데 일부 필드는 쉼표가 포함 된 문자열입니다. 문자열은 따옴표 안에 있지만 numpy는 따옴표를 단일 문자열을 정의하는 것으로 인식하지 않습니다. 예를 들어 't.csv'의 데이터를 사용하는 경우 :
2012, "Louisville KY", 3.5
2011, "Lexington, KY", 4.0
코드
np.genfromtxt('t.csv', delimiter=',')
오류를 생성합니다.
ValueError : 일부 오류가 감지되었습니다! 줄 # 2 (3 대신 4 개의 열이 있음)
내가 찾고있는 데이터 구조는 다음과 같습니다.
array([['2012', 'Louisville KY', '3.5'],
['2011', 'Lexington, KY', '4.0']],
dtype='|S13')
문서를 살펴보면이 문제를 처리 할 수있는 옵션이 없습니다. numpy로 할 수있는 방법이 있습니까, 아니면 csv
모듈로 데이터를 읽은 다음 numpy 배열로 변환해야합니까?
해결 방법
quotechar : 문자열
The character to used to denote the start and end of a quoted item. Quoted items can include the delimiter and it will be ignored.
기본값은 "
입니다. 예 :
In [1]: import pandas as pd
In [2]: from StringIO import StringIO
In [3]: s="""year, city, value
...: 2012, "Louisville KY", 3.5
...: 2011, "Lexington, KY", 4.0"""
In [4]: pd.read_csv(StringIO(s), quotechar='"', skipinitialspace=True)
Out[4]:
year city value
0 2012 Louisville KY 3.5
1 2011 Lexington, KY 4.0
여기서 트릭은 쉼표 구분 기호 뒤의 공백을 처리하기 위해 skipinitialspace = True
를 사용해야한다는 것입니다.
강력한 csv 리더 외에도 보유하고있는 이기종 데이터에 pandas를 사용하도록 강력하게 조언 할 수 있습니다 (정형 배열을 사용할 수 있지만 numpy의 예제 출력은 모두 문자열 임).
참조 페이지 https://stackoverflow.com/questions/17933282
반응형
'파이썬' 카테고리의 다른 글
파이썬에서 클래스에 대한 클래스 메서드를 동적으로 만드는 방법 (0) | 2021.01.12 |
---|---|
파이썬에서 키로 카운터 정렬 (0) | 2021.01.11 |
파이썬 Python 스크립트 실행을 어떻게 중단합니까? (0) | 2021.01.11 |
파이썬 cv2.imread는 항상 NoneType을 반환합니다. (0) | 2021.01.11 |
파이썬 Python : 루프에서 모든 텍스트 파일 행 읽기 (0) | 2021.01.11 |
댓글