python-2.7 - python / Pandas :need help adding double quotes to columns

标签 python-2.7 csv numpy double-quotes

我需要为脚本生成的 csv 文件中的特定列添加双引号。

下面是我想到的这样做的愚蠢方式。对于这两个固定宽度的字段,它的工作原理是:

df['DATE'] = df['DATE'].str.ljust(9,'"')
df['DATE'] = df['DATE'].str.rjust(10,'"')

df['DEPT CODE'] = df['DEPT CODE'].str.ljust(15,'"')
df[DEPT CODE'] = df['DEPT CODE'].str.rjust(16,'"')

对于以下字段,它没有。它具有可变长度。因此,如果该值比标准的 6 位数字短,我会​​得到额外的双引号: "5673"""
df['ID'] = df['ID'].str.ljust(7,'"')
df['ID'] = df['ID'].str.rjust(8,'"')

我试过 zfill,但列中的数据是一个系列——我运行时得到“pandas.core.series.Series”
print type(df['ID'])

我无法使用 将其转换为字符串astype .我不知道为什么。我没有导入numpy。

我尝试使用 len() 来获取 ID 号的长度并将其传递给 str.ljust 和 str.rjust 作为它的第一个参数,但我认为它卡在了不是字符串的数据上。

是否有一种更简单的方法可以根据需要应用双引号,还是 zfill 将成为可行的方法?

最佳答案

您可以在之前/之后添加语音标记:

In [11]: df = pd.DataFrame([["a"]], columns=["A"])

In [12]: df
Out[12]:
   A
0  a

In [13]: '"' + df['A'] + '"'
Out[13]:
0    "a"
Name: A, dtype: object

将此分配回:
In [14]: df['A'] = '"' + df.A + '"'

In [15]: df
Out[15]:
     A
0  "a"

如果要导出到 csv,您可以使用引用 kwarg:
In [21]: df = pd.DataFrame([["a"]], columns=["A"])

In [22]: df.to_csv()
Out[22]: ',A\n0,a\n'

In [23]: df.to_csv(quoting=1)
Out[23]: '"","A"\n"0","a"\n'

关于python-2.7 - python / Pandas :need help adding double quotes to columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575275/

相关文章:

python - db.create_all() 不在 Flask-SQLAlchemy 中创建表

python-2.7 - 使用python和tkinter在按钮单击上调用python脚本

python - json.dumps() 适用于 python 2.7 但不适用于 python 3

csv - 创建一个 HIVE 表,根据列中的值从 HDFS 中的 .csv 中过滤数据

javascript - d3 似乎假设我知道 csv 的列名?

python - 使用 Pandas 读取大文本文件

javascript - Pygame解释器

python - 使用条件按 col 搜索值 col 的第一次出现?

python - Python 中 ND 数组的“删除”命令

numpy - SciPy: `scipy.special.fresnel(x[, out1, out2])` 中的参数是什么?