python - 在 pandas 中,如何选择 datetime64 格式的年份,同时选择空白行?
问题描述
在 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] 格式的年份,同时选择空白行?
解决方案
year
通过将标量比较的 s 与检查NaT
s链接isna
,最后过滤器链接来创建布尔掩码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]
推荐阅读
- mifare - 如何获取 Mifare DESFire 文件大小
- python - 如何在不使用正则表达式的情况下交换特定位置的特定子字符串?
- reactjs - 将“授权承载{token}标头”附加到受保护的“客户端”axios请求是否安全?
- python - 将多个 2D 数据集堆叠到新的第三维(xarray)
- css - 使用两个相同的属性选择器 [class][class]
- java - 如何使用多态性从模型类创建 GUI 类
- php - 从 webm 10sec 块创建 HLS 流
- php - 如何在 Yii2 中仅以 json 格式响应错误?
- python - Python class setter - are class attributes reassigned every time a new instance is created?
- javascript - moo 词法分析器是否支持所有正则表达式语法?