Как переименовать все записи в определенном столбце .tsv файла?
У меня есть .tsv файл в котором содержатся данные в виде таблицы. Мне необходимо изменить в определенном столбце все записи. На пример: Исходная таблица:
| / | 1 | 2 | 3 | 4 | 5 |
|-- |-- |-- |-- |-- |-- |
| a |x |x |y |x |x |
| b |x |x |y |x |x |
| c |x |x |y |x |x |
Желаемый результат: В 3 столбце изменить все записи на x
| / | 1 | 2 | 3 | 4 | 5 |
|-- |-- |-- |-- |-- |-- |
| a |x |x |x |x |x |
| b |x |x |x |x |x |
| c |x |x |x |x |x |
Дополнительный вопрос №1
Как сделать так чтобы код, представленный ниже, не создавал дополнительный столбец вначале уже готовой таблицы?
Дополнительный вопрос №2
Как в код, представленный ниже, добавить условие? На пример: если имя в 3 столбце = у, то меняем на х, а если имя = t, то меняем на z
Заранее спасибо
Ответы (1 шт):
Решение с использованием модуля Pandas:
import pandas as pd # pip install pandas | conda install pandas
df = pd.read_csv(filename, sep="\t")
df["3"] = "x"
df.to_csv(filename, sep="\t", index=False)
Если имя столбца заранее неизвестно и вы хотите поменять значения в третьем по счету столбце, тогда вместо df["3"] = "x" нужно будет сделать так:
df.iloc[:, 2] = "x" # нумерация в Python и Pandas/Numpy начинается с нуля