Питон, Панды. создайте текстовый файл из определенного столбца

#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()))
 
  1. df.tic.unique() возвращает уникальные значения столбца tic
  2. "n".join(df.tic.unique()) объединяет уникальные значения в гигантскую строку, разделенную новой строкой
  3. f.write записывает гигантскую строку из 2 в файл

Я также отредактировал "stocks" , чтобы "stocks.txt" .