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')
这有效但在编写csv时,当在Excel中打开csv文件时,像0003418(type = str)这样的标识符的值会转换为3418(type = general)。我该如何避免这种情况?
答案 0 :(得分:0)
我无法找到这个问题的傻瓜,所以我会将我的评论作为解决方案发布。
这是一个Excel问题,而不是python
错误。 Excel自动格式化数字列以删除前导0。你可以修复"这可以通过强制pandas
在写作时引用:
import csv
# insert pandas code from question here
# use csv.QUOTE_ALL when writing CSV.
nocheck.to_csv('NoCheck.csv', quoting=csv.QUOTE_ALL)
请注意,这实际上会在CSV中的每个值周围加上引号。它将在Excel中呈现您想要的方式,但如果您尝试以其他方式读取文件,则可能会遇到问题。
另一种解决方案是在不引用的情况下编写CSV,并将Excel中的单元格格式更改为" General"而不是"数字"。