programing

Panda로 탭으로 구분된 파일 읽기 - Windows에서는 작동하지만 Mac에서는 작동하지 않습니다.

bestprogram 2023. 7. 21. 21:46

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