[英]Modify all elements in a python list and change the type from string to integer
[英]Change elements in list from string to integer, using data imported from CSV
我正在寫一個機器學習程序。 我從Arduino獲取數據,並通過串行總線將其發送到python,以供分類器讀取。 串行總線只能傳輸“字符串”,而分類器只能處理“整數”(我使用KNN分類器)
這是問題所在。 數據存儲在csv文件的列表中。(例如:
['520','521','156','179','191']
['519','521','157','180','189']
我想將它們更改為int。 編譯時代碼沒有出現任何問題。 但是,當我再次打開csv文件並檢查其類型時,它們仍然顯示為字符串,而不是整數。
代碼如下所示:
import csv
with open('sensorFeature.csv', 'r') as sensorRawFile:
rawData = csv.reader(sensorRawFile)
with open('new.csv', 'w') as sensorFeatureFile:
csv_writer = csv.writer(sensorFeatureFile)
for row in rawData:
for i in range(len(row)):
row[i] = int(row[i])
csv_writer.writerow(row)
# checking if I change string to int successfully
with open('new.csv', 'r') as test:
reader = csv.reader(test)
for line in reader:
for x in line:
print(type(x))
# the result still tell me they are all string instead of int
csv文件只是具有特定格式的文本文件,因此,當您將數據寫入csv時,它首先會格式化為文本。 您可以:
獲取數據時使用數據
讀取csv時轉換數據
使用pandas.read_csv輕松讀取具有正確類型的文件
使用另一種保存數據的方法(即酸洗)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.