【发布时间】:2016-02-08 02:25:10
【问题描述】:
我需要在脚本生成的 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 将成为可行的方法?
【问题讨论】:
-
如果用
np.savetxt写csv我会试试fmt='"%s"'。
标签: python-2.7 csv numpy double-quotes