Я только начал изучать панды.Что такое as_index в groupby in pandas
Я смущен тем, что именно является функцией as_index
в groupby
в Пандах?
PS: Я прочитал документацию pandas, но не совсем понял.
Я только начал изучать панды.Что такое as_index в groupby in pandas
Я смущен тем, что именно является функцией as_index
в groupby
в Пандах?
PS: Я прочитал документацию pandas, но не совсем понял.
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
print df.groupby('books', as_index=True).sum()
print
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 станет индекс в новом dataframe.
Преимущество as_index=True
заключается в том, что вы можете вытаскивать нужные строки, используя имена ключей. Напр. если вы хотите 'bk1'
вы можете получить его так: df.loc['bk1']
в противоположность тому, когда as_index=False
то вы должны будете получить это следующим образом: df.loc[df.books=='bk1']
Включая другой Основное преимущество использования as_index=True
поднятый @ayhan в комментариях: df.loc['bk1']
бы быстрее, потому что ему не нужно проходить весь столбец books
, чтобы найти 'bk1'
, когда он проиндексирован. Он просто вычислит значение хэша 'bk1'
и найдет его в 1 раз.
При использовании группы по функции 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
Спасибо много. Я знаю о печати. – Haritha
@Haritha Это общее правило в программировании. 'распечатайте все, что вызывает сомнения. В первые дни программирования команды 'print' были включены повсюду в программе для отладки ошибок. Если вы думаете, что я ответил на ваш вопрос, тогда подумайте о принятии его в качестве ответа, нажав на галочку «✔» слева от ответа под двумя треугольниками. – MYGz
@Haritha А также совершите экскурсию http://stackoverflow.com/tour – MYGz