我有一个数据框,其中包含一个代表docker容器之间通信的多索引。
Out[37]:
sum count
fd.cip fd.sip evt.host container.name container.image evt.io_dir
10.144.119.13 10.144.119.19 10.144.119.13 mesos-c6387aca-8770-40b5-b7b6-ba97de6aefa3 mesosphere/marathon:v1.5.0 write 12 1
9.0.0.131 9.0.0.130 10.144.119.15 mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce ches/kafka write 12 1
mesos-5e446cc7-9f07-415b-925d-1a2dab53723c zookeeper write 20 1
9.0.4.130 10.144.119.15 mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce ches/kafka write 2142 6
10.144.119.17 mesos-39b9f6b8-76e2-4ae2-876e-b9e32bf567a4 ches/kafka write 2076 120
9.0.5.130 10.144.119.14 mesos-7655b397-2a84-4da3-bd67-c805900a9fba ches/kafka write 692 40
10.144.119.15 mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce ches/kafka write 714 2
9.0.0.132 9.0.0.131 10.144.119.15 mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce ches/kafka write 549 5
mesos-60f730cf-617d-4b78-b900-2e44f9c36cc6 alvarobrandon/fmone-agent write 12948 5
9.0.4.130 10.144.119.15 mesos-60f730cf-617d-4b78-b900-2e44f9c36cc6 alvarobrandon/fmone-agent write 9757 6
10.144.119.17 mesos-39b9f6b8-76e2-4ae2-876e-b9e32bf567a4 ches/kafka write 540 6
9.0.5.130 10.144.119.14 mesos-7655b397-2a84-4da3-bd67-c805900a9fba ches/kafka write 540 6
10.144.119.15 mesos-60f730cf-617d-4b78-b900-2e44f9c36cc6 alvarobrandon/fmone-agent write 9554 6
9.0.0.133 9.0.0.131 10.144.119.15 mesos-338da821-3d90-4a8e-8a37-e9dc0a6f3c8f alvarobrandon/fmone-agent write 13157 4
mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce ches/kafka write 426 4
9.0.4.130 10.144.119.15 mesos-338da821-3d90-4a8e-8a37-e9dc0a6f3c8f alvarobrandon/fmone-agent write 9768 4
10.144.119.17 mesos-39b9f6b8-76e2-4ae2-876e-b9e32bf567a4 ches/kafka write 360 4
9.0.5.130 10.144.119.14 mesos-7655b397-2a84-4da3-bd67-c805900a9fba ches/kafka write 417 5
10.144.119.15 mesos-338da821-3d90-4a8e-8a37-e9dc0a6f3c8f alvarobrandon/fmone-agent write 12078 5
9.0.0.134 9.0.4.130 10.144.119.15 mesos-f10839c4-a9cf-4f08-9f27-a6a37f6ff38e alvarobrandon/fmone-agent write 2674 30
10.144.119.17 mesos-39b9f6b8-76e2-4ae2-876e-b9e32bf567a4 ches/kafka write 1574 117
fd.cip和fd.sip分别是客户端和服务器ip,它们的组合在整个数据帧中是唯一的,因为两个容器之间只有一个通信通道。我想遍历数据帧,获取每个这些唯一对的container.name。目标是得到像
这样的东西for each pair(fd.cip,fd.sip):
print fd.cip, fd.sip, container.name1, container.name2
从示例
中的数据中提供类似的内容10.144.119.13, 10.144.119.19, mesos-c6387aca-8770-40b5-b7b6-ba97de6aefa3
9.0.0.131, 9.0.0.130, mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce, mesos-5e446cc7-9f07-415b-925d-1a2dab53723c
9.0.0.131, 9.0.4.130, mesos-4988aac9-94ec-44b4-8e32-ee3de23247ce, mesos-39b9f6b8-76e2-4ae2-876e-b9e32bf567a4
这有什么解决方案吗?我希望我能很好地解释自己。
答案 0 :(得分:0)
我解决了这个问题。多索引数据帧的groupby函数是我正在寻找的函数。
for idx, df_select in indexdf.groupby(level=[0,1]):
print idx, df_select.reset_index()
这给了我idx变量中的ip对和df_select数据帧中的其余数据