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

Что такое as_index в группе в пандах?

Что такое функция as_index в groupby в groupby?

4b9b3361

Ответ 1

print() ваш друг, когда вы ничего не понимаете. Это рассеивает сомнения много раз.

Взглянуть:

import pandas as pd

df = pd.DataFrame(data={'books':['bk1','bk1','bk1','bk2','bk2','bk3'], 'price': [12,12,12,15,15,17]})

print(df)

print(df.groupby('books', as_index=True).sum())

print(df.groupby('books', as_index=False).sum())

Выход:

  books  price
0   bk1     12
1   bk1     12
2   bk1     12
3   bk2     15
4   bk2     15
5   bk3     17

       price
books       
bk1       36
bk2       30
bk3       17

  books  price
0   bk1     36
1   bk2     30
2   bk3     17

Когда as_index=True ключи, которые вы используете в groupby(), станут индексом в новом фрейме данных.

Преимущества, которые вы получаете, устанавливая столбец в качестве индекса:

  1. Скорость. Когда вы фильтруете значения на основе столбца индекса, например. df.loc['bk1'], это было бы быстрее из-за хэширования столбца индекса. Не нужно проходить весь столбец books чтобы найти 'bk1'. Он просто вычислит значение хеша 'bk1' и найдет его за один раз.

  2. Легкость. Когда as_index=True вы можете использовать этот синтаксис df.loc['bk1'] который короче и быстрее, в отличие от df.loc[df.books=='bk1'] который длиннее и медленнее.

Ответ 2

При использовании группы по функции as_index может быть установлено значение true или false в зависимости от того, хотите ли вы, чтобы столбец, с которым вы группировались, являлся индексом вывода.

import pandas as pd
table_r = pd.DataFrame({
    'colors': ['orange', 'red', 'orange', 'red'],
    'price': [1000, 2000, 3000, 4000],
    'quantity': [500, 3000, 3000, 4000],
})
new_group = table_r.groupby('colors',as_index=True).count().sort('price', ascending=False)
print new_group

выход:

        price  quantity
colors                 
orange      2         2
red         2         2

Теперь с as_index = False

   colors  price  quantity
0  orange      2         2
1     red      2         2

Обратите внимание, что цвета больше не являются индексом при изменении as_index = False