我有一个类型为datetime64 [ns]的DataFrame。我想过滤年份和季度。有关如何执行此操作的任何建议?
我已经尝试过这种麻烦的解决方案
data = data[(pd.Series(pd.DatetimeIndex(data['MatCalID']).year).isin([2018]) & pd.Series(pd.DatetimeIndex(data['MatCalID']).quarter).isin([2,3]))]
为什么要使用这种复杂的解决方案?:
不幸的是,我收到了“提供的Unalignable boolean Series key”错误。
有人知道该怎么做吗?
如果您运行的是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] 删除。
我来说两句