假设我有123-0-1,我想检查这个值是否存在于列表中。以下是我的清单:
df = [
{'mpls': '123-0-1', 'source': '192.168.10.10', 'destination' : '12.168.100.10'},
{'mpls': '123-0-1', 'source': '192.168.10.15', 'destination': '10.12.129.200'}
]在SQL中,我将使用:
select mpls, source from df where source = 192.168.10.10从列表中,我想从源123-0-1中提取mpls 192.168.10.10,这样我就可以得到正确的目标12.168.100.10。
发布于 2017-11-13 09:51:06
df不是数据格式。这是一份字典清单。
因此,您的唯一选项是循环和if条件:
for connection in df:
if connection['source'] == '192.168.10.10':
print(connection['mpls'])
print(connection['destination'])
# do whatever with connection. Can also break if it is guaranteed to be unique.但是,如果df是一种数据格式,则可以使用熊猫索引语法:
relevant_rows = df[df['source'] == '192.168.10.10']然后,relevant_rows将是一个新的数据格式,其行是source等于'192.168.10.10'的行。
import pandas as pd
data = [
{'mpls': '123-0-1', 'source': '192.168.10.10', 'destination' : '12.168.100.10'},
{'mpls': '123-0-1', 'source': '192.168.10.15', 'destination': '10.12.129.200'}
]
df = pd.DataFrame(data)
print(df)
# destination mpls source
# 0 12.168.100.10 123-0-1 192.168.10.10
# 1 10.12.129.200 123-0-1 192.168.10.15
relevant_rows = df[df['source'] == '192.168.10.10']
print(relevant_rows)
# destination mpls source
# 0 12.168.100.10 123-0-1 192.168.10.10发布于 2017-11-13 09:54:05
为什么不把它做成数据呢?
df = pd.DataFrame(df)
df[df['source'] == '192.168.10.10']发布于 2017-11-13 09:54:58
下面是使用列表理解的可能解决方案,因为您正在处理列表:
[(x['mpls'], x['destination']) for x in df if x['source'] == '192.168.10.10']它基于mpls和destination返回基于source的元组。
[('123-0-1', '12.168.100.10')]https://stackoverflow.com/questions/47261346
复制相似问题