np.genfromtext импортирует неправильные значения из файла .csv - 2-й столбец заполнен запятыми внутри кавычек - PullRequest
0 голосов
/ 06 июня 2018

РЕДАКТИРОВАТЬ: Проблема решена, оставив это открытым для потомков.

numpy.genfrontext имеет проблемы с разделением строк, которые запятые .Чтобы решить эту проблему, просто используйте pandas.read_csv и используйте quotechar = '"', чтобы позволить импортеру правильно обрабатывать строки, содержащие ваши запятые.

Странная проблема здесь.

Я импортирую списки данных о белках из файлов .csv, которые для 99,9% идентификаторов работают безупречно.Однако 1 идентификатор из ~ 5000 тысяч идентификаторов последовательно импортирует неверные данные.

Вот код, который я использую для извлечения моих данных.Он использует glob для извлечения CSV-файлов с похожими именами.Заголовки сохраняются в виде списка, а затем используются в качестве столбцов на случай, если заголовки файлов csv перемешаны (черт возьми, Proteome Discoverer):

indexes = ["Accession", "# Peptides", "MW [kDa]", "Score"]
headers = pd.read_csv(str(WorkingDirectory) + "/" + str(name) + "-R1.csv", nrows=1).columns.tolist()
total = [np.genfromtxt(x, delimiter = ',', skip_header = 1, usecols = [int(headers.index(indexes[0])),int(headers.index(indexes[1])),int(headers.index(indexes[2])),int(headers.index(indexes[3]))], filling_values = 0.01, dtype = ('|U16','float64','float64','float64')).tolist() for x in glob.glob(str(WorkingDirectory) + "/" + str(name) + "*.csv")] 

идентификаторы затем сохраняются в списке, где каждый списокзапись соответствует исходному файлу.[Файл 1, Файл 2, Файл 3]

Вот где это становится странным.Из записей 5.5K в каждом файле .csv есть один идентификатор, который последовательно (при перезапуске кода) сообщает о неправильных числах.

Приложите выходные данные моей программы вместе с таблицами Excel, из которых получены данные.Столбцы A, C, E и H - мой импорт (Accession, Score, # Peptides и MW [kDa] соответственно, оранжевым цветом) enter image description here

Это выглядит как имя идентификатора исчет импортирует правильное значение, но следующие два столбца, соответственно, отключены на 1 (это импортирует F, а не E), а затем пытаются выбрать значение из неопределенного столбца, который не существует (следовательно, 0,01 из-заfilling values)

Вещи, которые я проверил:

1) Да, заголовки Excel одинаковы для всех трех файлов.

2) Да, у меня есть код вместо, чтобы обрабатывать нонсенс NaN, генерируемый любыми нулями.Поэтому, если он импортирует 0 для оценки, я вручную изменю это позже.

3) Да, если пропущенные значения отсутствуют, genfromtext filling_values = 0.01 заполнит этот пробел, однако для этого В этом случае не нужно заполнять какие-либо пробелы, поскольку в ячейках есть соответствующие значения.

4) Каждый другой проверенный мной идентификатор правильно импортирует данные.

5) Q60749 не необычная строка.Другие включают: Q9CQM5, D3Z5X0 и т. Д. Без хэштегов, без кавычек, без запятых.

6) {Из комментариев} Все файлы содержат только один экземпляр этого идентификатора белка

Почемуэтот идентификатор вызывает проблемы из тысяч других успешных хитов?Первоначально я обнаружил этот хит, потому что в последующем анализе говорилось, что у меня есть значение NaN;Q60749 оказался этим значением, и он просто не импортирует правильные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...