2015-10-18 2 views
1

У меня есть foll. текстовый файл:Получить строку заголовка в dataframe pandas

line_1 
line_2 
line_3 
Col_A Col_B Col_C 
1.2  33  45 
23  12  55 

Вот как я прочитал:

df = pandas.read_table(file_name, skiprows=3, sep=' ', skipinitialspace=True) 

Есть ли способ, я могу получить доступ только строку заголовка т.е.?. 'Col_A Col_B Col_C' как строка? Я не хочу использовать df.columns.values, так как он возвращает массив. Я хочу получить строку заголовка с сохранением расстояния между разными столбцами.

+0

Вы имеете в виду 'df.columns.str.join ('')' или '. '.join (df.columns)', если вы хотите str – EdChum

ответ

1

Вы можете просто сделать:

In [6]: 
' '.join(df) 

Out[6]: 
'Col_A Col_B Col_C' 

Это работает, потому что итерацию вернулся из ФР являются столбцы, которые являются строками, так что вы можете просто join их с вашим сепаратором.

EDIT

Если вы хотите, чтобы получить именно то, что ваш заголовок был сохранен, то вы можете сделать следующее:

In [8]: 
df = pd.read_table(io.StringIO(t), skiprows=3, header=None, nrows=1) 
df 

Out[8]: 
         0 
0 Col_A Col_B Col_C 

In [10]: 
df.iloc[0][0] 

Out[10]: 
'Col_A Col_B Col_C' 

Так что это не определяет разделитель так он будет выглядеть запятые которых нет, поэтому вся строка заголовка считывается как одно значение столбца, вы можете получить только значение строки, индексируя его, как показано выше.

+0

Извините, я должен был быть яснее. Я хочу сохранить количество пробелов между Col_A, Col_B и Col_C. Использование '.join не сохраняет это значение – user308827

+0

@ user308827 Когда вы добавляете строки заголовка в dataframe, сохраняются ли sapces в каждом столбце? Что такое разделитель данных? Разделен ли он пробелами? – pelumi

+0

Поскольку вы читаете свой csv in и указываете разделитель, вы теряете исходные пространства, которые вы могли бы сделать, используя это: 'df = pandas.read_table (имя_файла, skiprows = 3, header = None, nrows = 1)' this wlll create a однострочный df с вашим заголовком только как строка данных, вы можете просто сделать 'df.iloc [0] [0]', чтобы получить заголовок в виде строки – EdChum

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