【发布时间】:2019-06-08 23:07:09
【问题描述】:
我需要一些 pandas 代码的帮助来迭代一个 pandas 数据框,回顾 3 天并向前 3 天与特定行中的日期相关。
我已经尝试了多种方法来解决这个问题,并且相信我已经接近了。
当我在循环外运行这行代码时,我得到的是真或假,这是我所期望的,但它只与一个日期相关。
这是我的循环的代码:
for ind, row in df.iterrows():
start = row.Day-pd.Timedelta(days=3)
end = row.Day+pd.Timedelta(days=3)
row['FCR'] = row[(row['Day'] >= start) & (row['Day'] <= end)].duplicated(subset='Source (A Number)')
这是我正在阅读的 excel 中的一行数据;在 Pandas 中,我已将 Day 转换为日期时间。我正在处理的数据有数百万行。
行、日、应用程序、通道、开始时间、结束时间、来源(一个数字)
1,2019-01-01,ContactCenter,CallIn,1/1/19,1/1/19,+6100297096500
我正在尝试创建一个名为“FCR”的新列,这取决于过去 3 天或未来 3 天是否有重复记录。
这是一个数据示例:
+-----+------------+-------------------+
| Row | Day | Source (A Number) |
+-----+------------+-------------------+
| 1 | 2019-01-01 | +6100295096511 |
| 2 | 2019-01-02 | +61470345116 |
| 3 | 2019-01-03 | +61438668819 |
| 4 | 2019-01-04 | +64211031448 |
| 5 | 2019-01-05 | +6100265424300 |
| 6 | 2019-01-06 | +61352571193 |
| 7 | 2019-01-07 | +64220697434 |
| 8 | 2019-01-08 | +61438668819 |
| 9 | 2019-01-09 | +6100246972177 |
| 10 | 2019-01-10 | +6100242330110 |
| 11 | 2019-01-11 | +61438826418 |
+-----+------------+-------------------+
非常感谢您的帮助。
【问题讨论】: