python - Python - 如果给定日期差异(天)中不存在值,则删除 ID 行
问题描述
提供了 ID、Indicator 和 Datediff 行,我如何根据 Datediff 行删除没有 28 天或更早的 Y 指标的任何 ID?感谢您的帮助-谢谢!
df = pd.DataFrame({'ID':[111, 111, 111, 112, 112, 112, 113, 114, 114, 115,
115],
'Indicator':['N', 'Y', 'N', 'N', 'N', 'Y', 'Y', 'Y',
'N', 'Y', 'N'],
'Dateddiff': [0, 10, 34, 0, 0, 28, 29, 0, 28, 30, 34]})
输入
ID Indicator Datediff
111 N 0
111 Y 10
111 N 34
112 N 0
112 N 0
112 Y 28
113 Y 29
114 Y 0
114 N 28
115 Y 30
115 N 34
输出
ID Indicator Datediff
111 N 0
111 Y 10
111 N 34
112 N 0
112 N 0
112 Y 28
114 Y 0
114 N 28
解决方案
尝试这个
df_final = df[~(df.Indicator.eq('Y')
& df.Dateddiff.gt(28)).groupby(df.ID).transform('any')]
Out[37]:
ID Indicator Dateddiff
0 111 N 0
1 111 Y 10
2 111 N 34
3 112 N 0
4 112 N 0
5 112 Y 28
7 114 Y 0
8 114 N 28
推荐阅读
- reactjs - 为什么我的子组件“主题”在酶“安装”中未定义?
- android - 在 INSERT 上使用正确的数据类型 Flutter SQLite 数据类型不匹配
- docker - 与 Docker run 共享我的主文件夹的子文件夹
- javascript - 轮询比设置多个 setTimeout() 更好
- javascript - 仅当我单击 Material-UI Grid 时才使用最新数据更新
- nginx - Nginx 配置将所有 URL 发送到主页
- javascript - 使用数组数据渲染时单选按钮无法正常工作
- python - 如何在 python 的列表理解中使用赋值操作并将以下迭代代码转换为它?
- walmart-api - 请求失败,状态码 403(特定于 Walmart API)
- reactjs - 列表中的每个孩子都应该有一个唯一的“关键”道具 React 中的错误