我是python的新手,正在尝试使用两个pandas数据帧来确定池正在使用哪些IP地址。数据如下:
数据框1:
poolName members1 members2
1 eft-eu.company.com_22_pool [10.51.237.59, comp-x-ws66_eft-eu.company.com:22] [10.51.237.60, comp-x-ws67_eft-eu.company.com:22]
2 eft-eu.company.com_443_pool [10.51.237.59, comp-x-ws66_eft-eu.company.com:443] [10.51.237.60, comp-x-ws67_eft-eu.company.com:443]
3 eft-eu.companyre.com_22_pool [10.51.237.50, comp-x-ws66_eft-eu.companyre.com:22] [10.51.237.51, comp-x-ws67_eft-eu.company.com:22]
数据框2:
nodeName nodeIP
comp-x-ws66_eft-eu.company.com 10.51.237.59
comp-x-ws50_eft-eu.company.com 10.51.237.50
comp-x-ws55_eft-eu.company.com 10.51.237.55
我想将 dataframe2 中的nodeIP
地址与members1
和members2
列下的IP地址 dataframe1 (并且可能members3/4/5
的成员超过两个)
dataframe2['nodeIP'].isin(dataframe1[[members1, members2]]).value_counts()
返回:
Out[146]:
False 1394
Name: nodeIP, dtype: int64
我怀疑这是因为我应该在 dataframe1 中的列members1
和members2
上与子值dataframe1['members'][1][0]
进行比较,但我不是确定如何在比较语句中声明这一点。是否需要for循环才能遍历该列以访问子值,或者是否有与dataframe1['members1'][*][0]
等效的东西?
最终我想返回用于匹配IP地址的poolName。