如何过滤大熊猫的年份和季度

KieranPC

我有一个类型为datetime64 [ns]的DataFrame。我想过滤年份和季度。有关如何执行此操作的任何建议?

我已经尝试过这种麻烦的解决方案

data = data[(pd.Series(pd.DatetimeIndex(data['MatCalID']).year).isin([2018]) & pd.Series(pd.DatetimeIndex(data['MatCalID']).quarter).isin([2,3]))]

为什么要使用这种复杂的解决方案?:

  • 必须使用pd.DatetimeIndex来访问“年”和“季度”
  • 必须使用pd.Series来使用'isin'

不幸的是,我收到了“提供的Unalignable boolean Series key”错误。

有人知道该怎么做吗?

埃德Chum

如果您运行的是Pandas版本0.15.0或更高版本,则无需将Series转换为,DateTimeIndex因为现在有了一个新的datetime属性.dt您可以使用它来访问日期时间对象的年和季度属性,并使用布尔条件来过滤df:

data[(data['MatCalID'].dt.year == 2008) & (data['MatCalID'].dt.quarter.isin([2,3]))]

通常,isin当您要测试多个值而不是单个值的隶属关系时,应该使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章