2017-10-11 113 views
0

我有一个数据框有一个多指标表示码头集装箱之间的通信。遍历多指标熊猫对

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 

对此有任何解决方案?我希望我能够很好地解释自己。

+2

请张贴实际数据,而不是图像。我们需要我们可以复制和过去的东西。否则,生成一个可行的例子的工作太多了。 – piRSquared

+0

对不起。我编辑了这个问题 – Brandon

回答

0

我解决了这个问题。多索引数据帧的groupby函数是我正在寻找的函数。

for idx, df_select in indexdf.groupby(level=[0,1]): 
    print idx, df_select.reset_index() 

这使我在IDX变量对IP的和数据在数据帧df_select其余