【问题标题】:Pandas avoid double quotes in converted numeric column with appended commaPandas 避免在带有逗号的转换后的数字列中使用双引号
【发布时间】:2019-07-25 00:12:06
【问题描述】:

假设我想通过添加右方括号和逗号来修改 Pandas 数据框的列值,即],。该列为浮点型。

我正在对列应用自定义函数:

    df['colName'] = df['colName'].apply(parentisi2)

当我只添加方括号时,即,

def parentisi2(name):
    return str(name)+"]"

一切都很好。

但是当我添加,,即,

def parentisi2(name):
    return str(name)+"],"

保存到文件时也会插入双引号。 例如,我没有9.336669722189999],,而是得到"9.336669722189999],"

我怎样才能避免这种情况?

【问题讨论】:

  • 没有。因为你说的是​​一个csv 文件,它用逗号分隔。如果您在不带引号的情况下编写逗号,那么当逗号是列的一部分(即 id+], 事物的一部分)或者当它是列之间的分隔符时,您将如何处理?
  • 你为什么要自己加逗号?熊猫会为你做到这一点
  • 是字符串的逗号,不是分隔逗号。但是我想要没有双引号的字符串。但是@rafaelc 是对的,我现在意识到没有" 它被视为字段分隔符
  • 也许你可以使用 ;作为分隔符而不是 , 用于您的 csv 文件 - 这样您就不需要引号

标签: python pandas csv


【解决方案1】:

编辑:我误读了 OP 的意图。此答案处理 csv 导出中的分隔符。

如果您使用另一个分隔符,它会起作用。下面我用过;

import pandas as pd


df = pd.DataFrame({'colName': [0.1, 0.2]})

def parentisi2(name):
    return str(name)+"],"

df['parentisi'] = df['colName'].apply(lambda x: parentisi2(x))
df['parentisi'] = df['parentisi'].astype(str)
df.to_csv('parentisi.csv',
          sep = ';')

【讨论】:

  • 你说得对……我误读了 OP 的意图。更新了解决 csv 导出问题的答案。
猜你喜欢
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
相关资源
最近更新 更多