많은 고정 폭 데이터 파일을 읽고 csv로 변환 할 수있는 Python 스크립트를 설정하려고합니다. 나는이 같은 pandas을 사용하고이 작업을 수행하려면Python Pandas를 사용하여 데이터 유형 해석없이 고정 폭 파일 읽기
pandas.read_fwf('source.txt', colspecs=column_position_length).\
to_csv('output.csv', header=column_name, index=False, encoding='utf-8')
경우 column_position_length
및 column_name
는 데이터를 읽고 쓰는 데 필요한 정보를 포함하는 목록입니다.
이 파일에는 테스트 답변을 나타내는 긴 문자열이 있습니다. 예 : 333133322122222223133313222222221222111133313333
은 객관식 시험에서 정답을 나타냅니다. 따라서 이것은 숫자 값보다 더 많은 코드입니다. 내가 겪고있는 문제는 판다 (pandas)가이 값을 수레로 해석 한 다음이 값을 CSV (3.331333221222221e + 47)에 과학 표기법으로 쓰는 것입니다.
이 문제와 관련하여 많은 질문을 발견했지만 문제를 해결하지 못했습니다.
- Solution 1 - 저는이 시점에서 값이 이미 수레로 변환되어 도움이되지 않을 것이라고 생각합니다.
- Solution 2 - 팬더에 따라 documentation,
dtype
은 Python의read_fwf
에 대한 인수로 지원되지 않습니다. - 솔루션 3 변환기 사용 - 변환기를 사용할 때의 문제는 데이터 형식으로 변환 할 열 이름이나 인덱스를 지정해야하지만 모든 열을 문자열로 읽고 싶습니다.
두 번째 옵션은 모든 열을 문자열로 읽는 것에 대한 답변으로 보이지만 불행히도 read_fwf
에는 지원되지 않습니다. 어떤 제안?
'dtype' _is_ supported이고, yes로 설정하면'object'로 설정하는 것이 최적의 해결책이 될 것입니다. – DyZ
dtype : 열의 유형 이름 또는 dict -> 유형, 기본값 없음 데이터 또는 열의 데이터 유형. 예 : { 'a': np.float64, 'b': np.int32} (지원되지 않는 엔진 = '파이썬'). dtype을 보존하고 해석하지 않으려면 str 또는 object를 사용하십시오. http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_fwf.html – dselgo