python - Pandas to_csv 现在无法正确写入值
问题描述
我正在使用 csv 来保存如下所示的 datframe:
PredictionIdx CustomerInterest
0 fe789a06f3 0.654059
1 6238f6b829 0.654269
2 b0e1883ce5 0.666289
3 85e07cdd04 0.664172
其中我在第一列中有一个值“0e15826235”。我正在使用 pandas to_csv() 将此数据帧写入 csv。但是当我在 google excel 或 libreoffice 中打开这个 csv 时,它在 excel 中显示 0E,在 libreoffice 中显示 0。在 kaggle 提交期间给我带来了问题。但这里要注意的一点是,当我使用 pandas read_csv 读取相同的 csv 时,它会在数据框中正确显示上述值。
解决方案
如第一条评论所述,错误是由您选择的编辑器引起的。许多编辑会使用某种版本的科学记数法,它读取一个e
(在特定位置,如第二个字符)作为指数的指示符。例如,Excel 会将其读取为“以 X 为底的 Y 次幂”,其中 X 是 之前的数字e
,Y 是 之后的数字e
。这是对 Excel 科学计数法的简要说明。
这不会发生在其他单元格条目中,因为似乎还有其他类似字符串的字符。Excel、Libre 和可能的 Google 试图解释条目是什么,而不是从字面上理解。
在您的问题中,您使用单引号编写 '0e15826235',表示它可能是一个字符串,但这可能是在将值写入文件时需要确保的事项 - Excel 和其他人可能不知道这是为了是一个字符串文字。
通常,检查值的格式并考虑最终编辑器在打开时可能“认为”它是什么。特别是对于 Excel,字符串开头的单引号字符将强制 Excel 将其作为字符串读取。看到这个答案。
推荐阅读
- java - Oracle 无法存储表情符号
- sql - 将 SQL 选择存储为变量并稍后与另一个选择进行比较
- java - PMD 选项在 Spring Tool Suite 3.9.6 中不可见
- android-studio - 没有它,Google 服务插件将无法运行。文件 google-services.json 丢失。
- android - 从活动导航时保留任务的活动堆栈
- python - 当 .py 在 RASPBIAN STRETCH LITE 上作为启动运行时,kivy 上的鼠标光标被隐藏
- javascript - 在 Vue.js 中嵌套循环组件
- python-3.x - 在 Python 中使用 PicoSDK
- c - CMake:对于每个源文件一个可执行文件
- enterprise-architect - Archimate - 应用层 - 接口 + 数据库