0
votes

I have a df which i have manipulated as below

genres = ['Adventure','Action','Thriller','Science Fiction','Comedy']

df_genre_sum = df_genre.groupby(['genre','release_year'])['revenue'].sum()[genres]

print(df_genre_sum)

It gives me result something like :

img

Now, How can I draw a graph where I can see line plot with all genres in different colors with

X axis = Years

Y axis = Revenue

I am new to matplotlib, I know to draw graph when series has index and value but this series has another level inside it.

Update

{'Action': {1984: 735328023.0, 1985: 152427960.0, 1987: 191185897.0, 1989: 962338821.0, 1990: 381293845.0, 1992: 14358033.0, 1993: 212954613.0, 1995: 418194034.0, 1996: 959696788.0, 1997: 967263794.0}, 'Adventure': {1984: 361744356.0, 1985: 533537722.0, 1987: 191185897.0, 1989: 1002823860.0, 1990: 244527783.0, 1992: 504050219.0, 1993: 1133054613.0, 1995: 418194034.0, 1996: 678894988.0, 1997: 922401607.0}, 'Comedy': {1984: 295212467.0, 1985: 381109762.0, 1987: 38119483.0, 1989: 372485039.0, 1990: 721212258.0, 1992: 518408252.0, 1993: 212954613.0, 1995: 390174654.0, 1996: 353602675.0, 1997: 680494326.0}, 'Science Fiction': {1984: 402328023.0, 1985: 381109762.0, 1987: 38119483.0, 1989: 372485039.0, 1990: 244527583.0, 1992: 14358033.0, 1993: 1079155768.0, 1995: 73959291.0, 1996: 293648382.0, 1997: 760510868.0}, 'Thriller': {1984: 78371200.0, 1985: 152427960.0, 1987: 191185897.0, 1989: 156167015.0, 1990: 136766262.0, 1992: 658716349.0, 1993: 15668826.0, 1995: 710806752.0, 1996: 978717877.0, 1997: 2178045256.0}}

1

1 Answers

1
votes

I believe you need filter first by isin with boolean indexing, then aggregate sum and final Series reshape by unstack:

df_genre_sum = (df_genre[df_genre['genre'].isin(genres)]
                 .groupby(['release_year', 'genre'])['revenue']
                 .sum()
                 .unstack())


df_genre_sum.plot()