Как переименовать все записи в определенном столбце .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 шт):

Автор решения: MaxU

Решение с использованием модуля 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 начинается с нуля
→ Ссылка