2017-12-29 89 views
-2
import pandas as pd 
check = pd.read_csv('1.csv') 
nocheck = check['CUSIP'].str[:-1] 
nocheck = nocheck.to_frame() 
nocheck['CUSIP'] = nocheck['CUSIP'].astype(str) 
nocheck.to_csv('NoCheck.csv') 

수하게하지만 3418에 CSV, 0,003,418 (TYPE = STR)와 같은 식별자에 대한 값으로 변환을 기록하는 동안 (TYPE = 일반) 때의 CSV 파일이 Excel에서 열립니다. 어떻게 이것을 피할 수 있습니까?저장 DataFrame는 CSV뿐만 출력 세포 유형은 텍스트 대신이 작동

+0

읽고 쓸 때? 나는 열이 str과 함께 시작한다면 쓰는 것이 일어날 것이라고 생각하지 않는다? –

+1

값이 숫자가됩니다 * *? 팬더에요? 에서 _insertCSVreadingprogramhere_? 데이터가 바뀌고 있다는 사실을 발견하기 위해 당신은 무엇을 사용하고 있습니까? Excel을 사용하여 CSV를 여는 경우 Python이 아닌 Excel의 잘못입니다. – excaza

+0

@ excaza의 덧글 작성 - Excel을 사용하는 경우 수치 열을 자동 서식으로 지정할 수 있습니다. 'nocheck.to_csv ('NoCheck.csv', quoting = csv.QUOTE_ALL)' – pault

답변

0

이 질문에 대해 속보를 찾을 수 없으므로 해결책으로 의견을 게시하겠습니다.

이것은 Excel 문제이며 python 오류는 아닙니다. Excel에서는 숫자 열을 자동 서식 화하여 선행 0을 제거합니다. 당신은 쓸 때 인용 pandas을 강제로이 문제를 "해결"할 수 있습니다이 실제로 CSV의 각 값에 따옴표를 넣어 것

import csv 
# insert pandas code from question here 
# use csv.QUOTE_ALL when writing CSV. 
nocheck.to_csv('NoCheck.csv', quoting=csv.QUOTE_ALL) 

참고. Excel에서 원하는대로 렌더링되지만 파일을 다른 방식으로 읽으려고하면 문제가 발생할 수 있습니다.

또 다른 해결 방법은 인용 부호없이 CSV를 작성하고 Excel의 셀 형식을 "숫자"대신 "일반"으로 변경하는 것입니다.