python - 如何根据规则提取唯一行?
问题描述
我有一个这样的数据框
id_1,date_1,id_2,date_2
我需要数据框 where rows (date_1 + 15 days) < date_2 如果这个规则匹配我只需要第一次出现
仅使用布尔掩码并不能解决问题
所以我想我可能需要使用某种for index, row in df.iterrows():
并创建新的数据框
解决方案
import pandas as pd
from datetime import timedelta
df = pd.DataFrame(data={'id_1':[1,2,3,4],
'date1': ['2018-01-10', '2018-02-05', '2018-02-20', '2018-02-21'],
'date2': ['2018-01-11', '2018-02-15', '2018-02-27', '2018-02-22']})
df[['date1', 'date2']] = df[['date1', 'date2']].apply(pd.to_datetime)
df['date1_15'] = df['date1'] + timedelta(15)
df = df.loc[df['date1_15'] < df['date2']].head(1)
推荐阅读
- wpf - 在按钮单击上绘制折线图
- javascript - 如何从通过 WebRequest 对象加载的页面调用 javascript 函数
- laravel-envoy - 我在特使脚本中提供了密码,但它提示手动输入密码
- android - Pjsip Android 视频通话:倒转视频预览
- javascript - javascript如何解析参数?
- angular - 为什么在使用 [ngModel]="true" 时每个生命周期挂钩上的 this.value 未定义/为空
- javascript - Angular UI 路由器刷新正在处理父状态问题
- tensorflow - Keras:KMP_AFFINITY 是关键输出吗?
- delphi - Delphi 6中如何将TVirtualStringTree的所有节点保存到BMP?
- r - 与excel表相关的R官员图