使用 read_csv(),我得到以下結果
df = pd.read_csv('data.csv')
data.head()
輸出:
|col_1|col_2|col_3|
|-----|-----|-----|
|1,2,3| NaN | NaN |
|6,5,4| NaN | NaN |
我嘗試提到 sep=',' 但它沒有用經過一番調查,我發現基本上行都用字串引號括起來了。喜歡,
1, 2, 3存盤為“ 1, 2, 3 ”
我使用矢量化字串方法嘗試了我的運氣
df['col_1'].str.replace("'", "").astype(float)
但它給我一個錯誤 ValueError: invalid literal for int() with base 10
我想要的輸出很簡單
|col_1|col_2|col_3|
|-----|-----|-----|
| 1 | 2 | 3 |
| 6 | 5 | 4 |
謝謝
編輯:這是我從 CSV 中獲取的資料樣本
"6,148,72,35,0,33.6,0.627,50,1" "1,85,66,29,0,26.6,0.351,31,0" "8,183,64,0,0,23.3,0.672,32 ,1" "1,89,66,23,94,28.1,0.167,21,0" "0,137,40,35,168,43.1,2.288,33,1" "5,116,74,0,0,25.6,0.201, 30,0" "3,78,50,32,88,31.0,0.248,26,1"
uj5u.com熱心網友回復:
使用quotechar =“語錄”中pd.read_csv,并會被罰款!;)
這邊走
pd.read_csv('data.csv', quotechar="'")
uj5u.com熱心網友回復:
在 CSV 檔案中使用引號來表示逗號分隔的值應該一起保存在一個列中。您可以創建一個新的 CSV 檔案并撰寫一個腳本來將原始檔案的每一行(帶引號)讀入一個字串,從字串中洗掉前導和尾隨引號,然后將新字串寫入新的 CSV 檔案。然后,您可以呼叫read_csv新的 CSV 檔案。這應該可以解決問題。
write_text = ''
with open('data.csv', 'r') as infile:
for line in infile:
if line[-1] == '\n':
line = line[0:-1]
line = line[1:-1] # remove quotes
write_text = line '\n'
write_text = write_text[0:-1] # remove trailing newline
with open('data_without_quotes.csv', 'w') as outfile:
outfile.write(write_text)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/342461.html
上一篇:我如何使用回圈來更改串列中的值
下一篇:python中的重力加速度
