#python #pandas
Вопрос:
Я пытаюсь создать текстовый файл из столбца в фрейме данных pandas. Существуют повторяющиеся значения, и я бы хотел, чтобы каждое значение копировалось только один раз. Мне также не нужно значение строки в текстовом файле.
Я попытался создать словарь:
stocks = dict(enumerate(df.tic.unique()))
затем:
f = open("stocks","w")
f.write( str(stocks) )
f.close()
Вывод текстового файла-это все имена, но я бы хотел, чтобы у каждого была своя строка. Кроме того, указан номер строки, который мне нужно опустить.
Ответ №1:
Вы записываете строку 'stocks'
в файл. Вам нужно записать переменную stocks
.
saveFile = open('stocks', 'w')
saveFile.write(stocks)
saveFile.close()
Ответ №2:
Я не знаю, как выглядит ваш фрейм данных, но вот пример.
d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(d)
df["col1"].to_csv(r'data.txt', header=None, index=None, sep='t', mode='a')
Замените col1 на df["col1"]
имя вашего столбца, а df, конечно, на имя вашего фрейма данных. ЕСЛИ вы хотите удалить дубликаты, вы также можете просто использовать df.drop_duplicate(…) с нужными настройками перед сохранением фрейма данных в текстовом файле.
Ответ №3:
Если вы хотите использовать unique()
, вы можете попробовать это:
with open("stocks.txt", "w") as f:
f.write("n".join(df.tic.unique()))
df.tic.unique()
возвращает уникальные значения столбцаtic
"n".join(df.tic.unique())
объединяет уникальные значения в гигантскую строку, разделенную новой строкойf.write
записывает гигантскую строку из 2 в файл
Я также отредактировал "stocks"
, чтобы "stocks.txt"
.