0
使用熊貓,我從資源中提取CSV並將其寫入新CSV以供進一步處理。熊貓似乎正在向第一個標題列寫入非ASCII字符,這些字符不存在於源CSV中。熊貓在寫CSV時如何讓大熊貓忽略這些特殊字符(它們似乎沒有改變)?停止熊貓寫入非源字符的非ASCII字符
「計算機名稱」必須包含特殊字符(\ xef \ xbb \ xbf),否則任何內容都不會寫入該列的CSV中。當我將Pandas下載整個CSV文件到一個文件時,我發現這些字符是問題,但是當我將讀數打印到終端時,特殊字符不存在。
pandasdata = pandas.read_csv(r'\\mydrive\resource.csv')
header = ["IP Address", "\xef\xbb\xbfComputer Name", "OS"]
pandasdata.to_csv('localresources.csv', columns = header)
按照要求,這裏有從查詢結果哪些列是在CSV:
print(pandasdata.columns.tolist())
[ '\ XEF \ XBB \ xbfComputer名稱', '操作系統', '位置',「串行','DeskID''IP地址']
pandasdata.columns.tolist()顯示什麼?你是否確定它不是你的文件中的unicode BOM?嘗試'pandasdata = pandas.read_csv(r'\\ mydrive \ resource.csv',encoding ='utf-8')'或'pandasdata = pandas.read_csv(r'\\ mydrive \ resource.csv',encoding =' utf-16')' – EdChum
@EdChum使用ascii編解碼器的UTF-8錯誤不能在位置9編碼字符u'\ xae':序號不在範圍內(128)。 CParserError出現UTF-16錯誤:標記數據出錯。 C錯誤:在源上調用read(nbytes)失敗。嘗試引擎='python'。 對於你的第一個建議,我應該把它放在哪裏? – LampShade
用'print(pandasdata.columns.tolist())'的輸出編輯你的問題,這會告訴你你的列是否有某種duff值,然後你可以重寫列的名字,如果你想通過'df .columns = [「IP地址」,「計算機名稱」,「操作系統」]'擺脫奇怪的符號 – EdChum