.replace пропускается во время цикла for - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу преобразовать файл .data в файл .csv, поэтому я читаю файл .data, заменяя некоторые символы и строки, так что файл .csv должен быть читаемым с numpy.loadtxt. К сожалению, две строки:

line = line.replace("yes", "1") 
line = line.replace("no", "0")

пропущены. Так что функция .loadtxt не будет работать. Я пытался изменить символы замены, все безуспешно. Было бы хорошо, если бы кто-то мог мне помочь. Вот полный код:

import numpy as np

fString = open("diagnosis.data", "r")
fFloat = open("diagnosis.csv", "w")

for line in fString:
    line = line.replace(",", ".")
    line = line.replace("\t", ",")
    line = line.replace("yes", ",1")
    line = line.replace("no", "0")
    line = line.replace("\r\n", "\n")
    fFloat.write(line)

fString.close()
fFloat.close()

fFloat = open("diagnosis.csv","r")
dataset = np.loadtxt(fFloat, delimiter=",")
fFloat.close()

Набор данных можно найти здесь

1 Ответ

0 голосов
/ 28 апреля 2020

Одной из вещей, которая может быть неправильной, является то, что ваша ссылка на строку не переписывает fString. Вы могли бы попробовать что-то ближе к этому синтаксису? Это фактически изменит fString, а не только строковую переменную.

for line in range(fString):
    fString[line] = fString[line].replace(",", ".")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...