【问题标题】:In pandas, how can I select the years in the format datetime64 and at the same time the blank lines?在 pandas 中,如何选择 datetime64 格式的年份,同时选择空白行?
【发布时间】:2018-12-12 19:02:48
【问题描述】:

在 python 3 和 pandas 我有这个数据框:

df_comissoes.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 104 entries, 0 to 103
Data columns (total 4 columns):
DataFimComissao    65 non-null datetime64[ns]
IdComissao         104 non-null object
NomeComissao       104 non-null object
SiglaComissao      97 non-null object
dtypes: datetime64[ns](1), object(3)
memory usage: 3.3+ KB

“DataFimComissao”列包含日期或空白 (NaT) 行:

    index   DataFimComissao     IdComissao  NomeComissao    SiglaComissao
0   0   2008-06-26 03:00:00     11072   CPI da Guerra Fiscal    CPIGF
1   1   2008-06-25 03:00:00     11073   CPI da Queima da Palha da Cana-de-açúcar    CPIQPCA
2   2   2009-04-15 03:00:00     11199   CPI da Santa Casa   CPISC
3   3   NaT                     12769   Comissão Especial de Reforma da Lei Orgânica d...   CERLOM
4   4   NaT                     12770   Comissão do Serviço Público Civil   CSPC
5   5   2010-02-03 02:00:00     12216   CPI do Erro Médico  CPIEM
6   6   2010-10-25 02:00:00     12221   CPI BANCOOP     CPIBANCOOP
7   7   2010-10-06 03:00:00     12222   CPI IPVA    CPIIPVA
8   8   2010-10-25 02:00:00     12223   CPI Pedofilia   CPIPEDOF
9   9   NaT                     12444   Comissão de Constituição, Justiça e Redação     CCJR

我只需要选择日期为“DataFimComissao”且年份等于或高于 2015 年或具有“NaT”的行

请问,如何选择 datetime64[ns] 格式的年份,同时选择空白行?

【问题讨论】:

    标签: python pandas datetime datetime-format


    【解决方案1】:

    通过将years 与标量比较的NaTs 与isna 的检查NaTs 进行链接来创建布尔掩码,最后通过boolean indexing 进行过滤:

    mask = (df_comissoes['DataFimComissao'].dt.year >= 2015) | 
           (df_comissoes['DataFimComissao'].isna())
    #oldier pandas versions
    #mask = (df_comissoes['DataFimComissao'].dt.year >= 2015) | 
    #       (df_comissoes['DataFimComissao'].isnull())
    
    df = df_comissoes[mask]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多