2016-04-18 5 views
6

У меня есть foll. dataframe:Удаление столбца заголовка из pandas dataframe

ДФ

A B 
0 23 12 
1 21 44 
2 98 21 

Как удалить имена столбцов A и B от этого dataframe? Один из способов - записать его в файл csv, а затем прочитать его при указании header = None. есть ли способ сделать это, не выписывая csv и перечитывая?

+0

df.columns = [''] * 2? –

+0

Почему вы хотите удалить их? – Alexander

+0

У меня есть функция, которая предполагает, что их нет – user308827

ответ

7

Я думаю, что вы не можете удалить имена столбцов, только сбросить их range с shape:

print df.shape[1] 
2 

print range(df.shape[1]) 
[0, 1] 

df.columns = range(df.shape[1]) 
print df 
    0 1 
0 23 12 
1 21 44 
2 98 21 

Это так же, как с помощью to_csv и read_csv:

print df.to_csv(header=None,index=False) 
23,12 
21,44 
98,21 

print pd.read_csv(io.StringIO(u""+df.to_csv(header=None,index=False)), header=None) 
    0 1 
0 23 12 
1 21 44 
2 98 21 

Следующая решение с skiprows:

print df.to_csv(index=False) 
A,B 
23,12 
21,44 
98,21 

print pd.read_csv(io.StringIO(u""+df.to_csv(index=False)), header=None, skiprows=1) 
    0 1 
0 23 12 
1 21 44 
2 98 21 
+0

Это очень умный способ пересчета индекса строки или столбца – Rockbar

+1

Спасибо. Приятный день. – jezrael

2

Как избавиться от заголовка (первая строка) и индекса (первый столбец).

Для записи в CSV-файл:

df = pandas.DataFrame(your_array) 
df.to_csv('your_array.csv', header=False, index=False) 

Для чтения из CSV файла:

df = pandas.read_csv('your_array.csv') 
a = df.values 

Если вы хотите, чтобы прочитать файл CSV, который не содержит заголовок, передать дополнительный параметр header :

df = pandas.read_csv('your_array.csv', header=None)