一个数据帧进行非数值列添加引号“”将每个元素我有数据帧如何保存为CSV
id,type,value
1,8,value1
2,2,value2
3,7,value3
4,3,value4
5,10,value5
6,3,value16
我想补充的价值id
和CSV文件的value
要分配报价
"1",8,"value1"
"2",2,"value2"
什么更好的方式来做到这一点
一个数据帧进行非数值列添加引号“”将每个元素我有数据帧如何保存为CSV
id,type,value
1,8,value1
2,2,value2
3,7,value3
4,3,value4
5,10,value5
6,3,value16
我想补充的价值id
和CSV文件的value
要分配报价
"1",8,"value1"
"2",2,"value2"
什么更好的方式来做到这一点
转换你的id列作为一个字符串列。然后使用适当的参数在功能to_csv
:
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
将适用引号是明显的非数字像整数或浮点数的所有列。
这是很好的信息 – piRSquared
是的附注:任何与csv格式有关的问题都可以根据我的经验通过to_csv参数修复,或者你正在尝试一些东西是不合理的,我建议你总是挖掘to_csv docstring - 我必须认识到它有点混淆,尽管 – Boud
'df.assign (id = df.id.astype(str),value = df.value.astype(str))。to_csv( index = False,quotechar =''', header = None,quoting = csv.QUOTE_NONNUMERIC)'Prints来筛选并证明这一点。我会深入研究它。 – piRSquared
转换为字符串,并使用+
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"
'df.update'和'df = df.applymap()'有什么区别? 'df.update'不会创建一个新的df? – MYGz
@MYGz是的,我喜欢语法更好...有时 – piRSquared
为什么当我在文件中写入日期帧,然后出现三个引号@piRSquared – Ekaterina
也许向我们展示您尝试过的以及您的尝试出了什么问题? – MooingRawr
您可能想重新考虑选择@ Boud的答案。该答案适用于旨在编写csv文件的规范技术。 – piRSquared