首页 > 解决方案 > 查找 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"]

然后应用我已经创建的函数。

标签: pythonpandas

解决方案


推荐阅读