如何添加引号" "保存为CSV的数据帧的非数字列中的每个元素

时间:2017-01-31 14:42:49

标签: python pandas

我有DataFrame

id,type,value
1,8,value1
2,2,value2
3,7,value3
4,3,value4
5,10,value5
6,3,value16

我想添加要分配报价的CSV文件的值idvalue

"1",8,"value1"
"2",2,"value2"

有什么更好的方法呢

2 个答案:

答案 0 :(得分:16)

将id列转换为字符串列。然后在函数import csv df.id = df.id.astype(str) df.to_csv('test.txt', index=False, quotechar='"', header=None, quoting=csv.QUOTE_NONNUMERIC) 中使用适当的参数:

csv.QUOTE_NONNUMERIC

{{1}}会将引号应用于所有明显非数字的列,如int或float。

答案 1 :(得分:6)

转换为字符串并使用+

df.update('"' + df[['id', 'value']].astype(str) + '"')
print(df)

使用applymap

df.update(df[['id', 'value']].applymap('"{}"'.format))
print(df)

两者都屈服

    id  type      value
0  "1"     8   "value1"
1  "2"     2   "value2"
2  "3"     7   "value3"
3  "4"     3   "value4"
4  "5"    10   "value5"
5  "6"     3  "value16"