python 、 Pandas : Boolean Indexing Comparing DateTimeIndex to Period

标签 python pandas

让我们考虑一个 DataFrame,其中包含 2010 年 1 月每一天的 1 行 2 个值:

date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D')
df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range)

我想使用Period Period('2009-12-28/2010-01-03', 'W-SUN')创建一个 bool 索引器,该索引器将返回一个包含以下内容的DataFrame仅从那个时期开始。如何创建这样的 bool 索引器? - 理想情况下无需将周期转换为日期时间范围。

最佳答案

设查询pd.Period对象为:

query = pd.Period('2009-12-28/2010-01-03', 'W-SUN')

您可以通过访问其 start_timeend_time 属性,通过以下方式直接执行此操作:

1) 使用DF.truncate :

df.truncate(query.start_time, query.end_time)

2)使用 bool 索引器:

df[(df.index >= query.start_time) & (df.index <= query.end_time)]

3) 使用日期时间索引,默认情况下包括两个端点:

df[query.start_time:query.end_time]

所有这些产品

enter image description here

关于 python 、 Pandas : Boolean Indexing Comparing DateTimeIndex to Period,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41676020/

相关文章:

python - 如何在pandas中按正数或负数对数据进行分组

Python cmd.cmd 按 ctrl+D 退出

python - 从 Python 创建 SQL Server 数据库

python - 从 Python Pandas/Dask 中的 Parquet 文件读取一组行?

python - pip install t sne 不起作用

python - Keras 自定义损失函数,具有来自拟合生成器的多个参数

python-3.x - 我的 python 代码中有一个错误 key 错误 ['logo_url' ] 不在索引中

python - 在 arm64 上使用 numpy 和 pandas 构建 docker 时出现问题

python - Pandas 仅对某一列进行分组和求和

python - 用字典键匹配 Pandas 子字符串并用字典值替换