我有一个这样的数据集

index   Date_Time   Pass_ID El
0   3/30/23 05:12:36.36 A   1
1   3/30/23 05:12:38.38 A   2
1   3/30/23 05:12:40.40 A   3
1   3/30/23 05:12:42.42 A   4
1   3/30/23 05:12:44.44 A   4
1   3/30/23 12:12:50.50 B   3
1   3/30/23 12:12:52.52 B   4
1   3/30/23 12:12:54.54 B   5
1   3/30/23 12:12:56.56 B   6
1   3/30/23 12:12:58.58 B   7
1   3/30/23 12:13:00.00 B   8
1   3/30/23 12:13:02.02 B   9
1   3/31/23 20:02:02.02 C   3
1   3/31/23 20:02:05.05 C   4

Date_Time是pandas datetime对象.

我想将记录按Pass_ID101分组:例如,10:00到13:00之间将返回B.

在这种情况下,我不知道如何让groupby和"between_time"发挥作用.这似乎是最好的前进道路.在将Date_Time设置为索引后,我还try 过使用一个Lambda函数,但没有起作用.使用聚合似乎不允许我提取Date_Time字段的dt.hour.有人知道如何简洁地做到这一点吗?

推荐答案

试着:

# to datetime if necessary
# df["Date_Time"] = pd.to_datetime(df["Date_Time"])

out = df.set_index("Date_Time").between_time("10:00", "13:00")["Pass_ID"].unique()
print(out)

打印:

['B']

或者:如果您想在10:00-13:00之间过滤整个组:

out = (
    df.groupby("Pass_ID")
    .filter(
        lambda x: len(x.set_index("Date_Time").between_time("10:00", "13:00")) == len(x)
    )["Pass_ID"]
    .unique()
)
print(out)

Python相关问答推荐

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

使用Keras的线性回归参数估计

Pandas 第二小值有条件

如何使用pandasDataFrames和scipy高度优化相关性计算

如何在箱形图中添加绘制线的传奇?

根据另一列中的nan重置值后重新加权Pandas列

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

按列分区,按另一列排序

如何在Python中并行化以下搜索?

如何使用pytest来查看Python中是否存在class attribution属性?

DataFrames与NaN的条件乘法

什么是最好的方法来切割一个相框到一个面具的第一个实例?

如何使用SentenceTransformers创建矢量嵌入?

网格基于1.Y轴与2.x轴显示在matplotlib中

寻找Regex模式返回与我当前函数类似的结果

Odoo16:模板中使用的docs变量在哪里定义?

分解polars DataFrame列而不重复其他列值

在matplotlib中重叠极 map 以创建径向龙卷风图

与同步和异步客户端兼容的Python函数

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?