2013-05-19 4 views
-2

Я написал небольшой скрипт, который извлекает ненужные столбцы из текстового файла, с которым я работаю. Я не уверен, как заставить его печатать в текстовый файл без потери данных.Печать всех значений в файл .txt в Python

import pandas as pd 
from pandas import * 

df = pd.read_table('newclass.txt', sep=r'\s+') 
newcol=['A'] 
df = df[newcol] 

for i in df: 
    print df 

Но это дает только текстовый файл, который выглядит, (например)

value1 
value2 
value3 
value4 
... 
value### 
value### 

... где ### являются только более высокие значения в конце списка. Как вы видите, он не показывает все значения (в середине списка). Как получить распечатку всех значений?

Спасибо.

ответ

1

Вы можете использовать to_csv на dataframe (вам просто нужно указать, что вы хотите, пробел в качестве разделителя):

path = "fixedfile.txt" 
df.to_csv(path, sep=" ", index=False) 
+0

Это сработало, но можно ли распечатать его без значений индекса вместе? – Matt

+0

@Matt вы можете просто использовать 'index = False'. Я добавил ссылку на документы 'to_csv', которые могут отвечать на многие ваши вопросы. –

+0

@Matt, если это сработает для вас, вы должны щелкнуть галочку, чтобы каждый мог сказать, что ваш вопрос разрешен. –

0

Изначально моя проблема заключалась в том, что я получал свернутое вывод всех моих данных, во-вторых, мне не нужен индекс перед моей первой колонкой. Мое решение:

import pandas as pd 
from pandas import * 

df = pd.read_table('newclass.txt',sep='\s+') 
newcol=['Mon-id'] 
df = df[newcol] 

print df.to_string(index=False) 

Согласно документации панд автоматически снижает его выход, если не указано его не с командой .to_string.

+0

Правильно, 'to_string' - это то, что вы хотите, если хотите для печати. 'to_csv' выводит его непосредственно в файл (или вы можете передать ему экземпляр' StringIO', если вы хотите получить строку вместо этого) –

Смежные вопросы