#python #python-3.x #database #pandas
#python #python-3.x #База данных #pandas
Вопрос:
У меня есть следующий фрейм данных pandas (df):
gene_id chrom start end
0 EN02 1 577 647
1 EN12 2 648 1601
2 EN15 3 1602 1670
3 EN86 4 1671 3229
и список индексов следующим образом:
ls_indx = [0, 1, 3, None]
Я хочу сделать следующее, чтобы найти эти индексы во фрейме данных следующим образом:
genes_snp = df. gene_id[overlaps]
Когда я исключаю это, я получаю следующую ошибку:
KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer supported. The following labels were missing: Index([None])
Я понимаю, что означает ошибка, но я хочу получить результат с теми индексами, которые сопоставляются во фрейме данных, а также с теми, которые отсутствуют, и мне нужно, чтобы они были сохранены и помечены как отсутствующие:
gene_id
0 EN02
1 EN12
3 EN86
4 None
Как я могу это сделать?
Заранее большое вам спасибо.
Ответ №1:
Попробуйте с reindex
ls_indx = [0, 1, 3, None]
df.gene_id.reindex(ls_indx)
Out[40]:
0 EN02
1 EN12
3 EN86
NaN NaN
Name: gene_id, dtype: object
Комментарии:
1. ты быстрее меня 🙂 1
2. Отлично, но когда я записываю результирующий фрейм данных в файл, он не включает None для отсутствующих значений, а вместо этого пробелы, почему это ?.
3. @aBiologist ммм, какой это тип файла? вы назначили его обратно перед записью в файл?
4. Неважно, я исправил это из df.to_csv, присвоив na_rep=»None», и это сработало, может быть, было бы лучшее решение. Ваш ответ отличный, спасибо за ваше решение и за ваш быстрый ответ. Я приму ваш ответ, @BEN_YO за спасение 👍
5. @aBiologista yw 🙂 счастливого кодирования ~