Podział danych w kolumnie i drukowanie wyników

0

Cześć,

Dopiero rozpoczynam przygodę z programowaniem w Pythonie. Na chwilę obecną mam dwa problemy podczas pisania kodu.

1) Jak podzielić informacje w kolumnie, jeśli znajduje się tam kilka wartości?
Próbuję dane rozdzielić w następujący sposób:

def spliting(col_name):       
 spliting = df[col_name].str.cat(sep = '|')  
 spliting = pd.Series(spliting .split('|'))
director = spliting('director')
df.director.value_counts()

Otrzymuję natomiast następujący wynik:

John Carpenter 12
Steven Spielberg 11
..
Peter Webber 1
Ethan Coen|Joel Coen 1
Ari Sandel 1
Dean Israelite 1

Zgodnie z powyższym, dalej występują dwie wartości/dane przedzielone znakiem "|".
Jak tego uniknąć?

2) Jak wydrukować zarówno przychód jak i dane reżysera przy jednoczesnym posortowaniu od największego zysku?

df['income'] = (df.revenue_adj * df.budget_adj)
q1 = df.groupby('director').income.sum()
q1

Powyższy kod zwraca mi zarówno reżysera i przychód nie potrafię jednak wyciągnąć informacji o najbardziej dochodowym reżyserze.movies.zip

0

Masz tam w pliku Lana Wachowski|Lilly Wachowski jako jeden rekord rezyser, musisz rozdzielac kolumny nie za pomoca rury | tylko przecinka , a potem te rozzdzielone zamieniac rure | na puste albo na cos innego zeby nie miec Lana Wachowski|Lilly Wachowski tylko

 Lana Wachowski, Lilly Wachowski
1

Zastosowałem funkcję explode i zadziałało.

df_explode = df.assign(director=df.director.str.split("|")).explode('director')

Drugi punkt udało się rozwiązać dzięki:

q1 = df_explode.groupby('director').income.sum().nlargest(5)

1 użytkowników online, w tym zalogowanych: 0, gości: 1