一個數據幀進行非數值列添加引號「」將每個元素我有數據幀如何保存爲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