2015-07-30 3 views
1

У меня есть dataframe вроде этого:индекс Reset для столбцов

index  1   2 
Species AGRALB  AGRCRI 
Count  2   3 

, но я не хочу, чтобы первый ряд, чтобы быть там, я просто хочу dataframe, чтобы выглядеть следующим образом:

Species AGRALB  AGRCRI 
Count  2   3 

I знаете, что вы можете сбросить индекс с помощью df.reset_index(), но я хочу сделать это только для индекса работы в строке 1.

ответ

1

Непонятно, является ли индекс «индексом» это столбец или имя вашего индекса, но в общем случае следующее будет работать:

In [23]: 
df.columns = df.iloc[0] 
df = df.shift(-1).dropna() 
df 

Out[23]: 
0 Species AGRALB AGRCRI 
0 Count  2  3 

На самом деле, а не перекладывать, я бы просто взять кусочек:

In [31]: 
df.columns = df.iloc[0] 
df = df.iloc[1:] 
df 

Out[31]: 
0 Species AGRALB AGRCRI 
1 Count  2  3 

Если вы загрузили эти данные из CSV, а имена столбцов были на 2-й линии, то вы можете просто пропустить первый ряд df = pd.read_csv(file, skiprows=1)

+0

Это был csv, skiprows - самое легкое решение, но все они работают, спасибо! –

+0

Я так и думал, рад, что смогу помочь, пожалуйста, не забудьте принять мой ответ, чтобы этот вопрос не остался без ответа, в левом верхнем углу моего ответа будет пустой знак галочки – EdChum

1

Попробуйте это:

df.columns = df.columns.droplevel() 

Docstring: индекс возврата с запрошенным уровнем. Если MultiIndex имеет только 2 уровня, результат будет иметь тип индекса не MultiIndex.

Параметров ---------- уровня: INT/имя уровня или их перечень

Примечание ----- Не проверяет, если индекс результата является уникальным или не

Возвращает ------- индекс: Index или MultiIndex