免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1650 | 回复: 0
打印 上一主题 下一主题

在pandas中根据两个dataframe如何得到新的时间相关dataframe [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-03-08 10:28 |只看该作者 |倒序浏览
本帖最后由 僵尸 于 2017-03-08 10:30 编辑

我想统计网元退服情况,但每个网元都有子网元,只有在子网元全部退服才能计算该网元退服。所以涉及到两个dataframe。
  1. import pandas as pd
  2. ne = pd.DataFrame({"NE_Name": ["A", "A", "A", "D", "D", "B", "B", "B", "C", "C", "C", "C"],
  3.                    "NE_Unit": ["A1", "A2", "A3", "D2", "D3", "B1", "B2", "B3", "C1", "C2", "C3", "C4"]})

  4. df = pd.DataFrame({"NE_Name": ["A", "A", "A", "D", "D", "B", "B", "A", "A", "A", "A"],
  5.                    "NE_Unit": ["A1", "A2", "A3", "D2", "D3", "B1", "B3", "A1", "A2", "A3", "A2"],
  6.                    "Event_Time": ["2017/2/1 5:55:51",
  7.                                   "2017/2/1 5:55:52",
  8.                                   "2017/2/1 5:55:54",
  9.                                   "2017/2/1 6:05:30",
  10.                                   "2017/2/1 6:05:30",
  11.                                   "2017/2/1 7:10:30",
  12.                                   "2017/2/1 7:10:30",
  13.                                   "2017/2/1 7:24:11",
  14.                                   "2017/2/1 7:24:21",
  15.                                   "2017/2/1 7:24:11",
  16.                                   "2017/2/1 7:55:21"],
  17.                    "Clear_Time": ["2017/2/1 5:58:38",
  18.                                   "2017/2/1 5:58:48",
  19.                                   "2017/2/1 5:58:38",
  20.                                   "2017/2/1 7:02:06",
  21.                                   "2017/2/1 7:02:06",
  22.                                   "2017/2/1 7:18:36",
  23.                                   "2017/2/1 7:18:16",
  24.                                   "2017/2/1 7:53:37",
  25.                                   "2017/2/1 7:53:37",
  26.                                   "2017/2/1 7:53:37",
  27.                                   "2017/2/1 7:59:55"]})
复制代码

得到ne 和 df两个dataframe
  1. df

  2. Clear_Time  Event_Time  NE_Name NE_Unit
  3. 0   2017/2/1 5:58:38    2017/2/1 5:55:51    A   A1
  4. 1   2017/2/1 5:58:48    2017/2/1 5:55:52    A   A2
  5. 2   2017/2/1 5:58:38    2017/2/1 5:55:54    A   A3
  6. 3   2017/2/1 7:02:06    2017/2/1 6:05:30    D   D2
  7. 4   2017/2/1 7:02:06    2017/2/1 6:05:30    D   D3
  8. 5   2017/2/1 7:18:36    2017/2/1 7:10:30    B   B1
  9. 6   2017/2/1 7:18:16    2017/2/1 7:10:30    B   B3
  10. 7   2017/2/1 7:53:37    2017/2/1 7:24:11    A   A1
  11. 8   2017/2/1 7:53:37    2017/2/1 7:24:21    A   A2
  12. 9   2017/2/1 7:53:37    2017/2/1 7:24:11    A   A3
  13. 10  2017/2/1 7:59:55    2017/2/1 7:55:21    A   A2


  14. ne

  15. NE_Name        NE_Unit
  16. 0        A        A1
  17. 1        A        A2
  18. 2        A        A3
  19. 3        D        D2
  20. 4        D        D3
  21. 5        B        B1
  22. 6        B        B2
  23. 7        B        B3
  24. 8        C        C1
  25. 9        C        C2
  26. 10        C        C3
  27. 11        C        C4
复制代码

最终我想得到以下表格:
  1. Clear_Time           Event_Time     NE_Name
  2. 2017/2/1 5:58:48    2017/2/1 5:55:54    A
  3. 2017/2/1 7:02:06    2017/2/1 6:05:30    D
  4. 2017/2/1 7:53:37    2017/2/1 7:24:21    A
复制代码

解释下:
1.df中因为B网元下B2没有退服,所以最终结果B没有计算进去
2.退服时间是以子网元最后一个网元退服时间为该网元退服时间。恢复时间则以子网元最早一个恢复时间为该网元恢复时间
3.存在一个网元在df中多次退服情况,分别计算
有哪位朋友帮忙看看怎么解决,先行谢谢了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP