[英]PYTHON: how to count the number of quarters between two dates
您将如何计算熊猫数据base_date
的起始日期( base_date
变量)和y
列之间的季度数?
from dateutil.relativedelta import relativedelta
import pandas as pd
import numpy as np
base_date=pd.to_datetime('07/01/2019')
fake_data=pd.DataFrame([(x,pd.to_datetime('04/01/2020')+relativedelta(months=y)) for x in list(range(0,100)) for y in list(range(0,100))],columns=['x','y'])
fake_data['z']=fake_data['x']*np.random.uniform(low=1,high=1000)
更新:一个选项似乎适用于问题 1:
fake_data['month_diff']=(fake_data['y'].dt.year-base_date.year)*12+fake_data['y'].dt.month-base_date.month
fake_data['quarter']=(fake_data['month_diff']/3).astype(int)
如果现在将x
和y
变量设置为 Pandas 数据帧多级索引。 您将如何执行与问题 1 相同的任务?
fake_data.set_index(['x','y'],drop=True,inplace=True)
问题 1:
一年包含 4 个季度。 计算日期之间的季度差异的一种简单方法是将它们转换为year * 4 + 季度并使用差异:
fake_data.y.dt.year * 4 + fake_data.y.dt.quarter - (base_date.year * 4 + base_date.quarter)
问题2:
以前的方法仍然适用,但在index.levels[1]
:
fake_data.index.levels[1].year * 4 + fake_data.index.levels[1].quarter - (base_date.year * 4 + base_date.quarter)
简单地在第一个问题中你得到一个简单的系列,而这里它是一个索引......
这是使用 Pandas 内置周期差分的一种非常巧妙的方法:
import pandas as pd
t = pd.to_datetime('2025Q4').to_period(freq='Q')-pd.to_datetime('1850Q2').to_period(freq='Q')
print(t.n)
您可以轻松地将其扩展到您的特定应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.