python - 熊猫:如果列符合条件,则添加行
问题描述
数据框
id beg end
guest1 2021-10-21 17:00:00 2021-10-21 18:00:00
guest2 2021-10-21 10:00:00 2021-10-22 10:00:00
我想测试
如果客户恰好出现一次并且乞求和结束不是同一天,那么请喜欢(guest1)。 col1得到 2021-10-21 00:00:00 而col2得到beg
如果客户恰好出现一次并且乞求和结束是同一天,那么请喜欢(guest2)。
id beg end col1 col2
guest1 2021-10-21 17:00:00 2021-10-21 18:00:00 2021-10-21 00:00:00 2021-10-21 17:00:00
guest1 2021-10-21 17:00:00 2021-10-21 18:00:00 2021-10-21 18:00:00 2021-10-21 23:59:59
guest2 2021-10-21 10:00:00 2021-10-22 11:00:00 2021-10-21 00:00:00 2021-10-21 10:00:00
解决方案
您可以使用 value_counts、可调用索引和 isin 来过滤您的数据以仅包含单行数据,并使用另一个可调用索引根据您超过 1 天的条件过滤您的数据。
df[df['id'].isin(df['id'].value_counts().loc[lambda x: x==1].index)].loc[lambda x: x['end'] - x['beg'] > pd.Timedelta('1 days')]
推荐阅读
- ant - Ant-Build 上的 CodenameOne 问题
- python - 如何在 sanic-openapi 的查询参数中添加“允许的选项”/选择
- docker - JBoss cli 连接到 docker
- javascript - 如何更改完整可折叠 ul(Materialize,Html,Javascript,Css)的颜色?
- android - 如何从flutter下载管理器中的task_id获取任务的详细信息
- python - 创建范围列表很慢,有其他选择吗?
- python - 在Django中检测views.py之外的语言的问题
- python - 1.为什么输出是空白的?
- javascript - Discord.js ReferenceError:尝试测试嵌入时未定义通道
- android - Volly 在 Android 中给了我 com.android.volley.AuthFailureError