python - 查找 Pandas DataFrame 中满足每一行条件的记录数
问题描述
我有一个大熊猫 DataFrame,我想在这个 DataFrame 中添加一列,它将指示存在多少符合条件的记录。
下面有一个例子可以更好地理解这个问题。
每行的示例条件是:
( (is email same) OR (is phone same) ) AND (is date difference < 10 days)
初始数据框
ID | 日期 | 电子邮件 | 电话 |
---|---|---|---|
1 | 22-05-2020 | 测试1 | 123 |
2 | 23-05-2020 | 测试2 | 123 |
3 | 2020 年 5 月 24 日 | 测试1 | 1234 |
4 | 07-08-2020 | 测试1 | 12345 |
预期结果
ID | 日期 | 电子邮件 | 电话 | NumberOfRecordsWithin10Days |
---|---|---|---|---|
1 | 22-05-2020 | 测试1 | 123 | 3 |
2 | 23-05-2020 | 测试2 | 123 | 2 |
3 | 2020 年 5 月 24 日 | 测试1 | 1234 | 2 |
4 | 07-08-2020 | 测试1 | 12345 | 1 |
我已经使用 for 循环实现了这一点,但它需要永远。
我已经成功地使用 groupby 并在同一任务中表现良好,不同之处在于条件的第一部分是 AND 而不是 OR。所以,我可以做类似的事情
df.groupby(by=["Email","Phone"]
然后应用我已经创建的函数。
解决方案
推荐阅读
- java - 在spring项目中注入库类作为依赖项
- jquery - 当我单击 HTML 网页中的任意位置时,我使用 Jquery 获得了该标签的 ID
- javascript - 表格列宽
- javascript - 根据用户事件滚动到行,R/DT/Shiny,不使用分页
- reactjs - react-select 中的 onKeydown 事件
- mysql - 我不能用 lowerCase 执行 Sql UpperCase
- symfony - 在学说或验证中未定义为关联
- winapi - 为什么 C++ 应用程序中的变量地址在 Windows 上不同
- android - 如何让安卓应用支持所有屏幕尺寸?
- javascript - 如何从 AngularJS 中的 url 中删除 # 并使路径在重新加载/刷新时工作?