python - pandas to_csv 将 str 列转换为 int(或 float)

标签 python pandas csv

作为无标题,我注意到 pandas 'to_csv' 会自动转换只有字母数字字符串才能 float 的列。 我在 Jupyter notebook 中创建了一个数据框,并创建了一个充满值“1”的列 ['A']。因此,我有一个由一列字符串“1”组成的数据框。 当我使用“to_csv”将我的数据框转换为 csv 文件时。输出的 csv 文件是一个充满整数 1 的列。
你可能会建议我在 jupyter 中重新加载时将列重新转换为字符串,但是这是行不通的,因为我事先不知道哪些列可能会因为这种行为而受到惩罚。 有没有办法避免这种奇怪的情况。

最佳答案

可以在to_csv中设置quoting参数,看这个例子:

a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
df = pd.DataFrame(a)
df.to_csv('test.csv', sep='\t', quoting=csv.QUOTE_NONNUMERIC)

创建的csv文件是:

""  0   1   2
0   "a" "1.2"   "4.2"
1   "b" "70"    "0.03"
2   "x" "5" "0"

您还可以使用 quotechar 参数设置引号字符,例如quotechar="'" 将产生以下输出:

''  0   1   2
0   'a' '1.2'   '4.2'
1   'b' '70'    '0.03'
2   'x' '5' '0'

关于python - pandas to_csv 将 str 列转换为 int(或 float),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54217165/

相关文章:

python - 如何将数据框中的字符串转换为浮点值

java:如何检查csv文件是否有标题

csv - 将 LUBM 大学数据加载到 Neo4j

Python 从列表中删除项目

python - Pygame 移动物体

python - 如何将 CSV 文件与 Pandas 结合(并添加识别列)

python - 在 matplotlib 中绘制时间增量

python - 不断收到未定义的全局名称错误

python - 将另一个值添加到二维列表

ruby-on-rails - 我可以使用转换通过 kiba 复制行吗?