遍历多索引对

2024-09-29 21:50:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,它有一个表示docker容器之间通信的multindex

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,它们的组合在整个数据帧中是唯一的,因为两个容器之间只有一个通信通道。我想遍历dataframe,得到每个惟一对的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

有什么解决办法吗?。我希望我能解释清楚


Tags: kafka数据containerwriteagentmesossipfd
1条回答
网友
1楼 · 发布于 2024-09-29 21:50:33

我解决了这个问题。multindex数据帧的groupby函数就是我要找的函数

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

这就给出了idx变量中的一对ip和df\u select数据帧中的其余数据

相关问题 更多 >

    热门问题