Właśnie zacząłem uczyć się pandy.co to jest as_index w grupie przez pandy
Jestem zdezorientowany tym, czym dokładnie jest funkcja as_index
w groupby
w Pandach?
PS: Czytałem dokumentację pandy, ale nie do końca rozumiałem.
Właśnie zacząłem uczyć się pandy.co to jest as_index w grupie przez pandy
Jestem zdezorientowany tym, czym dokładnie jest funkcja as_index
w groupby
w Pandach?
PS: Czytałem dokumentację pandy, ale nie do końca rozumiałem.
print
jest twoim przyjacielem, gdy czegoś nie rozumiesz. Powoduje wiele wątpliwości.
Spójrz:
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()
wyjściowa:
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
Kiedy as_index=True
klawisz (s) można używać w GroupBy staną się indeks w nowym dataframe.
Zaleta as_index=True
polega na tym, że można wyszarpnąć żądane wiersze za pomocą nazw kluczy. Na przykład jeśli chcesz 'bk1'
można dostać to tak: df.loc['bk1']
w przeciwieństwie do tego, kiedy as_index=False
następnie trzeba będzie dostać to tak: df.loc[df.books=='bk1']
tym drugim Główną zaletą zastosowania as_index=True
podniesionego przez @ayhan w komentarzach: df.loc['bk1']
będzie być szybszym, ponieważ nie musi przechodzić przez całą kolumnę books
, aby znaleźć 'bk1'
podczas indeksowania. To po prostu wyliczy wartość mieszania 'bk1'
i znajdzie ją za pierwszym razem.
Podczas korzystania z grupy według funkcji, as_index można ustawić na wartość true lub false, w zależności od tego, czy kolumna, w której ma się znaleźć indeks, jest kolumną wyjściową.
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
wyjściowa:
price quantity
colors
orange 2 2
red 2 2
Teraz as_index = False
colors price quantity
0 orange 2 2
1 red 2 2
Uwaga jak kolory nie jest indeksem gdy zmieniamy as_index = false
dziękuję. Nie wiem o druku. – Haritha
@Haritha Jest to ogólna zasada w programowaniu. "wypisz" wszystko, co budzi wątpliwości. We wczesnych dniach programowania napisy "print" były wstawiane wszędzie w programie w celu debugowania errros. Jeśli uważasz, że odpowiedziałem na twoje pytanie, rozważ zaakceptowanie go jako odpowiedzi, klikając znak wyboru "✔" po lewej stronie odpowiedzi poniżej dwóch trójkątów. – MYGz
@Haritha A także wybierz się na wycieczkę http://stackoverflow.com/tour – MYGz