簡體   English   中英

使用從CSV導入的數據將列表中的元素從字符串更改為整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM