using pandas to find length of a column with given range

2816 views python
-1

so im trying to use pandas instead of a for loop to count the number of movies in a given range of year. Assume by data frame has 2 columns and 'year' is the column name at column 2

I solved it using a for loop but how would i do it by using pandas only?

def movie_made(beginning, end):
   movie =  pd.read_scv('title.csv')
   count = 0
   for i in move['year']:
      if beginning <= i and end <=i:
         count = count + 1
   return count

This allows me to count all the movies within a given year, but im wondering if there is a better way using the pandas infrastructure for reading from a data base.

answered question

2 Answers

1

You could do something like this:

import pandas as pd

df = pd.DataFrame(data=list(range(1980, 2001)), columns=['year'])
beginning, end = 1998, 2000


def movie_made(df, beginning, end):
    return len(df[(beginning <= df['year']) & (df['year'] <= end)].index)


print(movie_made(df, beginning, end))

Output

3

Further

  1. How do I get the row count of a Pandas dataframe?

posted this
5

Given a sample dataframe like this:

    movie   year
0      A    2016
1      B    2017
2      C    2018

you can set the year as index and use loc to get a year range then get count using shape

movie.set_index('year').loc[[2016,2017]].shape[0]

posted this

Have an answer?

JD

Please login first before posting an answer.