Я пытаюсь импортировать текстовый файл в Python в качестве фрейма данных. Мой текстовый файл состоит из двух столбцов, оба из которых являются числами.
Проблема в следующем: я хочу, чтобы один из столбцов был импортирован в виде строки (поскольку многие из «чисел» начинаются с нуля, например, 0123, и мне понадобится этот столбец, чтобы позже объединить df с другим)
Мой код выглядит так:
mydata = pd.read_csv("text_file.txt", sep = "\t", dtype = {"header_col2": str})
Однако я все равно теряю нули на выходе, поэтому четырехзначное число превращается в трехзначное.
Я предполагаю, что с моим кодом импорта что-то не так, но я пока не смог найти никакого решения.
Я новичок в python / pandas, поэтому буду очень признателен за любую помощь / предложения!
Спасибо, что решили проблему!






Трудно понять, почему ваш исходный код не работает:
from io import StringIO
import pandas as pd
# this mimics your data
mock_txt = StringIO("""header_col2\theader_col3
0123\t5
0333\t10
""")
# same reading as you suggested
df = pd.read_csv(mock_txt, sep = "\t", dtype = {"header_col2": str})
# are they really strings?
assert isinstance(df.header_col2[0], str)
assert isinstance(df.header_col2[1], str)
P.S. как всегда в SO - действительно приятно иметь некоторые данные и минимальный рабочий пример с кодом в исходном посте.
Привет, спасибо за отзыв! Комментарий akilat90 выше, перенаправляющий на связанный вопрос, решил мою проблему.
Рад, что проблема решена, но какая часть ссылки @ akilat90 играла роль? он использует dtype вместо converters?
Преобразуйте данные в нужный формат, прежде чем помещать их во фрейм данных. Я читал данные, манипулировал ими и ЗАТЕМ вводил их в фрейм данных, а не сразу читал их в фрейм данных.