Подтвердить что ты не робот

Удаление индексного столбца в pandas

У меня есть следующий код, который импортирует CSV файл. Есть 3 столбца, и я хочу установить первые два из них в переменные. Когда я устанавливаю второй столбец в переменную "эффективность", также включается столбец индекса. Как я могу избавиться от столбца индекса?

df = pd.DataFrame.from_csv('Efficiency_Data.csv', header=0, parse_dates=False)
energy = df.index
efficiency = df.Efficiency
print efficiency

Я попытался использовать

del df['index']

после того, как я установил

energy = df.index

который я нашел в другом сообщении, но это приводит к "KeyError: 'index'"

4b9b3361

Ответ 1

В DataFrames и Series всегда есть индекс. Хотя он отображается рядом с столбцом (столбцами), это не столбец, поэтому del df['index'] не работает.

Если вы хотите заменить индекс на простые порядковые номера, используйте df.reset_index(). Я настоятельно рекомендую немного прочитать документацию pandas, например, 10 минут для Pandas, чтобы понять, почему индекс есть, как он используется.

Ответ 2

При чтении в файл CSV и из него можно указать аргумент index=False например:

 df.to_csv(filename, index=False)

и читать из csv

df.read_csv(filename, index=False)  

Это должно предотвратить проблему, поэтому вам не нужно ее исправлять позже.

Ответ 3

df.reset_index(drop=True, inplace=True)

Ответ 4

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

df.set_index('id', inplace=True)

Ответ 5

Если ваша проблема такая же, как у меня, где вы просто хотите reset заголовки столбцов от 0 до размера столбца. У

df = pd.DataFrame(df.values);

EDIT:

Не очень хорошая идея, если у вас гетерогенные типы данных. Лучше всего используйте

df.columns = range(len(df.columns))

Ответ 6

вы можете указать, какой столбец является индексом в вашем файле csv, используя параметр index_col из функции from_csv если это не решит проблему, укажите пример своих данных.

Ответ 7

Одна вещь, которую я делаю, это df=df.reset_index() тогда df=df.drop(['index'],axis=1)