熊猫以时间为索引获取特定日期的行数

Posted

技术标签:

【中文标题】熊猫以时间为索引获取特定日期的行数【英文标题】:Pandas get number of row for specific date with time as index 【发布时间】:2021-12-22 15:20:41 【问题描述】:

我有一个以日期时间为索引的数据框(列中的值无关紧要)。当索引等于特定日期(2021/06/25 16:00:00)时,我想提取行号。我怎样才能做到这一点 ?我发现的唯一方法是添加一个计数列并使用loc,但我想知道是否有更好的方法。

import pandas as pd
from datetime import date, datetime, timedelta

sdate = datetime(2021,6,5,14)  # Start date
edate = datetime(2021,6,30)   # End Date
date_to_find = datetime(2021,6,25,16)
df = pd.DataFrame(index=pd.date_range(sdate, edate, freq='H'))   # Create a dataframe with date as index, every hour

df.insert(0, 'row_num', range(0,len(df)))  # here you insert the row count
df.loc[df.index == date_to_find]['row_num'][0]  # Grab the row number for which the index equals the date to find

【问题讨论】:

【参考方案1】:

你可以试试,

df.index.get_loc(date_to_find)

速度更快,可读性更强。

【讨论】:

太好了,谢谢!!

以上是关于熊猫以时间为索引获取特定日期的行数的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫数据框输出中定义索引或点击行数?

如何根据数据框中的列值获取特定的行数[重复]

计算其中的行数以找到特定值的行数[重复]

SQL/Hive 查询以计算特定值每天的行数

获取数据表中满足特定条件的行数

获取每行包含相同日期的 MYSQL 表的行数