【发布时间】:2019-01-16 12:32:32
【问题描述】:
正如未命名,我注意到 pandas 'to_csv' 会自动转换只有字母数字字符串要浮动的列。
我正在 Jupyter 笔记本中创建一个数据框并创建一个充满值“1”的列 ['A']。因此,我有一个由一列字符串“1”组成的数据框。
当我使用“to_csv”将我的数据框转换为 csv 文件时。输出 csv 文件是一列,其中包含整数 1。
您可能会建议我在 jupyter 中重新加载时将列重新转换为字符串,但这不起作用,因为我事先不知道哪些列可能会因为这种行为而受到惩罚。
有没有办法避免这种奇怪的情况。
【问题讨论】:
-
你有
NaN值吗? -
DataFrame 是否可以包含您想要数值的列(csv 输出中的混合类型),或者您是否尝试将每一列输出为字符串?
-
@JoshFriedlander:在将我的数据帧保存到 csv 之前:我将所有 NAN 转换为“”。然而 to_csv 在 csv 中重新引入了 NAN,但这不是问题,因为当我读取文件时,我可以简单地执行 fillna('',inplace=True)。
-
@John:我有很多类型的列:int 和 str。我注意到我的一些 str 列被转换为 int (在这些列中只有字母数字 str )
-
您称其为“奇怪的行为”,但 csv 文件在字符串、整数、布尔值等之间没有区别。它只是一个文本文件。加载它是差异的来源。如果导出带有字符串
'Text'的列,它也会被存储为text而不是'text',就像'1'被存储为1(就像int 1)...