Panda로 탭으로 구분된 파일 읽기 - Windows에서는 작동하지만 Mac에서는 작동하지 않습니다.
저는 Pandas/Python과 함께 Windows에서 탭 구분 데이터 파일을 문제없이 읽고 있습니다.데이터 파일에는 처음 세 줄의 노트가 포함되어 있고 다음에는 머리글이 있습니다.
df = pd.read_csv(myfile,sep='\t',skiprows=(0,1,2),header=(0))
저는 지금 제 맥으로 이 파일을 읽으려고 합니다. (맥에서 파이썬을 처음 사용합니다.)다음과 같은 오류가 발생합니다.
pandas.parser.CParserError: Error tokenizing data. C error: Expected 1
fields in line 8, saw 39
read_csv에 대한 error_bad_lines 인수를 False로 설정하면 마지막 행 끝까지 계속되는 다음 정보를 얻습니다.
Skipping line 8: expected 1 fields, saw 39
Skipping line 9: expected 1 fields, saw 125
Skipping line 10: expected 1 fields, saw 125
Skipping line 11: expected 1 fields, saw 125
Skipping line 12: expected 1 fields, saw 125
Skipping line 13: expected 1 fields, saw 125
Skipping line 14: expected 1 fields, saw 125
Skipping line 15: expected 1 fields, saw 125
Skipping line 16: expected 1 fields, saw 125
Skipping line 17: expected 1 fields, saw 125
...
인코딩 인수 값을 지정해야 합니까?Windows(윈도우)에서는 파일 읽기가 잘 작동하기 때문에 그럴 필요가 없는 것 같습니다.
가장 큰 단서는 모든 행이 한 줄로 반환된다는 것입니다.이는 회선 종료자가 무시되거나 존재하지 않음을 나타냅니다.
csv_reader에 대한 라인 터미네이터를 지정할 수 있습니다.Mac에 있는 경우 생성된 라인은 다음과 같이 끝납니다.\r
리눅스 표준보다는\n
아니면 여전히 창문의 멜빵과 벨트 접근이 더 낫습니다.\r\n
.
pandas.read_csv(filename, sep='\t', lineterminator='\r')
코덱 패키지를 사용하여 모든 데이터를 열 수도 있습니다.이렇게 하면 문서 로드 속도를 희생하여 견고성을 높일 수 있습니다.
import codecs
doc = codecs.open('document','rU','UTF-16') #open for reading with "universal" type set
df = pandas.read_csv(doc, sep='\t')
다른 옵션은 다음을 추가하는 것입니다.engine='python'
전속력으로pandas.read_csv(filename, sep='\t', engine='python')
구분 기호 매개 변수를 사용할 수 있습니다.
input_data=pd.read_csv("my_data.txt",header=0,delimiter="\t")
언급URL : https://stackoverflow.com/questions/27896214/reading-tab-delimited-file-with-pandas-works-on-windows-but-not-on-mac
'programing' 카테고리의 다른 글
파이썬에서 파일을 읽으려고 할 때 예외를 처리하는 좋은 방법은 무엇입니까? (0) | 2023.07.21 |
---|---|
Apple M1에서 Oracle 12c 도커 설정 (0) | 2023.07.21 |
PphpStorm이 여러 데이터베이스 연결에 대한 열을 확인할 수 없습니다. (0) | 2023.07.21 |
정규식을 사용하여 겹치는 모든 일치 항목을 찾는 방법 (0) | 2023.07.21 |
실제 쿼리를 실행하지 않고 JDBC 문에 대한 SQL 구문을 확인하려면 어떻게 해야 합니까? (0) | 2023.07.21 |