python如何判断季度_python-如何使用季度和年份的日期时间索引过滤 pandas 系列

import numpy as np

import pandas as pd

index = pd.date_range('2013-01-01', freq='M', periods=12)

s = pd.Series(np.random.rand(12), index=index)

print(s)

# 2013-01-31 0.820672

# 2013-02-28 0.994890

# 2013-03-31 0.928376

# 2013-04-30 0.848532

# 2013-05-31 0.122263

# 2013-06-30 0.305741

# 2013-07-31 0.088432

# 2013-08-31 0.647288

# 2013-09-30 0.640308

# 2013-10-31 0.737139

# 2013-11-30 0.233656

# 2013-12-31 0.245214

# Freq: M, dtype: float64

d = pd.Series(s.index, index=s.index)

quarter = d.dt.quarter.astype(str) + 'Q' + d.dt.year.astype(str)

print(quarter)

# 2013-01-31 1Q2013

# 2013-02-28 1Q2013

# 2013-03-31 1Q2013

# 2013-04-30 2Q2013

# 2013-05-31 2Q2013

# 2013-06-30 2Q2013

# 2013-07-31 3Q2013

# 2013-08-31 3Q2013

# 2013-09-30 3Q2013

# 2013-10-31 4Q2013

# 2013-11-30 4Q2013

# 2013-12-31 4Q2013

# Freq: M, dtype: object

print(s[quarter == '1Q2013'])

# 2013-01-31 0.124398

# 2013-02-28 0.052828

# 2013-03-31 0.126374

# Freq: M, dtype: float64

如果您不想创建一个每个季度都带有标签的新系列(例如,如果您只进行一次子集化),甚至可以

print(s[(s.index.quarter == 1) & (s.index.year == 2013)])

# 2013-01-31 0.124398

# 2013-02-28 0.052828

# 2013-03-31 0.126374

# Freq: M, dtype: float64

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值