首页 > 解决方案 > 根据日期列表过滤数据框

问题描述

我有以下气象站数据框(短数据框):

      import pandas as pd
      import numpy as np

      df_Station = pd.DataFrame({'Hemisphere': ['North', 'North', 'North', 'South'], 
                                 'Qtd_Instrumentation': [18, 5, 25, 10],
                                  'Year_Construction': [2015, 2008, 2016, 2020]})

我想生成一个新的数据框。这需要在车站建成的年份进行过滤。我试图创建一个包含目标年份的列表并构建 df_ 如下:

      list_years = [2015, 2016, 2017, 2018, 2019, 2020] 
      df_Filter =  df_Station[df_Station['Year_Construction'] == list_years]    

但是,此代码有错误: ValueError: Lengths must match to compare

我希望输出(df_Filter)为:

            print(df_Filter)

            Hemisphere  Qtd_Instrumentation Year_Construction
               North            18              2015
               North            25              2016
               South            10              2020

谢谢你。

标签: pythondataframe

解决方案


用于pandas.Series.isin此类过滤。

df_Filter =  df_Station[df_Station['Year_Construction'].isin(list_years)]

推荐阅读