5
Mój cel jest prosty, ale nie wiem, czy jest to możliwe. Powtarzalny przykład:Pandy: Grupuj, aby utworzyć tabelę z wartościami zliczania i liczenia
można przejść z tego:
raw_data = {'score': [1, 3, 4, 4, 1, 2, 2, 4, 4, 2],
'player': ['Miller', 'Jacobson', 'Ali', 'George', 'Cooze', 'Wilkinson', 'Lewis', 'Lewis', 'Lewis', 'Jacobson']}
df = pd.DataFrame(raw_data, columns = ['score', 'player'])
df
score player
0 1 Miller
1 3 Jacobson
2 4 Ali
3 4 George
4 1 Cooze
5 2 Wilkinson
6 2 Lewis
7 4 Lewis
8 4 Lewis
9 2 Jacobson
do tego:
score col_1 col_2 col_3 col_4
score
1 2 Miller Cooze n/a n/a
2 3 Wilkinson Lewis Jacobson n/a
3 1 Jacobson n/a n/a n/a
4 4 Ali George Lewis Lewis
Poprzez groupby
?
Mogę dostać tak daleko df.groupby(['score']).agg({'score': np.size})
, ale nie mogę się dowiedzieć, jak utworzyć nowe kolumny z wartościami kolumn.
@MaxU użyłem 'pop'! Jestem z siebie taki dumny :-) – piRSquared
Obie wspaniałe. Nie mam poprawnego wyjścia dla opcji 2 (prawdopodobnie dlatego, że używam Pythona 3?). Niemniej jednak opcja 1 jest idealna. – RDJ