作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 DNS 记录中查找信标事件,并且我有包含解析的 DNS 记录的 pandas 数据帧。
结构如下:
Received_Time Sender_IP Receiver_IP Content
2019-01-01 23:59:54.999 0.0.0.1 1.1.1.1 ...
2019-01-01 23:59:56.999 0.0.0.1 1.1.1.1 ...
2019-01-01 23:59:57.999 0.0.0.1 1.1.1.1 ...
2019-01-01 23:59:58.999 0.0.0.1 1.1.1.1 ...
2019-01-01 23:59:59.999 0.0.0.1 1.1.1.2 ...
我正在努力实现:
Beacon_Interval(s) Beacon_Count(including first) Sender_IP Receiver_IP
1.000 3 0.0.0.1 1.1.1.1
时间是datetime类型,我的想法是:
我不知道如何执行第一步。我也发帖看看是否有人有更好的方法来完成任务,提前谢谢。
最佳答案
根据我的理解,您想获得每个“接收时间”的间隔,可以通过以下方式完成:
df['Beacon_Interval(s)'] = df['Received_Time'].diff().dt.seconds
既然我们现在知道了“信标间隔”,我们就可以使用以下代码来计算它们的实例数量:
#Note, since you explicitly tell that it should count the first instance, I used +2 instead of +1 in the end.
df['Beacon_Count(including first)'] = \
df.groupby((df['Beacon_Interval(s)'] != df['Beacon_Interval(s)'].shift(1)).cumsum()).cumcount()+2
关于python - 如何在pandas数据框中查找具有相同时间间隔的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639343/
我是一名优秀的程序员,十分优秀!