Ich habe ein Datenframe, das 2 Spalten hat: Genre und release_year. Jedes Jahr hat mehrere Genres. Das Format ist unten angegeben:Python: Liniendiagramm für Werte gruppiert nach mehreren Spalten
genre release_year
Action 2015
Action 2015
Adventure 2015
Action 2015
Action 2015
Ich brauche die Änderung in allen Genres im Laufe der Jahre mit Pandas/Python plotten.
df = pd.read('genres.csv')
df.shape
(53975, 2)
df_new = df.groupby(['release_year', 'genre'])['genre'].count()
Daraus ergibt sich die folgende Gruppierung.
release_year genre
1960 Action 8
Adventure 5
Comedy 8
Crime 2
Drama 13
Family 3
Fantasy 2
Foreign 1
History 5
Horror 7
Music 1
Romance 6
Science Fiction 3
Thriller 6
War 2
Western 6
1961 Action 7
Adventure 6
Animation 1
Comedy 10
Crime 2
Drama 16
Family 5
Fantasy 2
Foreign 1
History 3
Horror 3
Music 2
Mystery 1
Romance 7
...
Ich brauche Liniendiagramme für die Änderungen in Genre Eigenschaften über die Jahre. Ich muss eine Schleife haben, die mir hilft, für jedes Genre im Laufe der Jahre zu plotten. Beispiel:
df_action = df.query('genre == "Action"')
result_plot = df_action.groupby(['release_year','genre'])['genre'].count()
result_plot.plot(figsize=(10,10));
zeigt die Handlung für das Genre "Aktion". Ebenso, statt für jedes Genre getrennt zu plotten, muss ich eine Schleife für dasselbe haben.
Wie kann ich das tun? Kann mir bitte jemand dabei helfen?
Ich habe Folgendes versucht, aber es funktioniert nicht.
genres = ["Action", "Adventure", "Western", "Science Fiction", "Drama",
"Family", "Comedy", "Crime", "Romance", "War", "Mystery",
"Thriller", "Fantasy", "History", "Animation", "Horror", "Music",
"Documentary", "TV Movie", "Foreign"]
for g in genres:
#df_new = df.query('genre == "g"')
result_plot = df.groupby(['release_year','genre'])['genre'].count()
result_plot.plot(figsize=(10,10));