首页 > 解决方案 > 如何从 Pandas 中的所有 DataFrame 中获取所有项目

问题描述

我有这个问题,mt Dataframe 中的所有行都包含多个项目。我想遍历整个 Dataframe 并将每个行项附加到一个新列表中,但我现在不确定如何执行此操作。

IPs
0   [172.16.254.1, 192.168.1.15, 255.255.255.0]
1         [192.0.2.1, 255.255.255.0, 192.0.2.1]
2                                [172.16.254.1]
3                                     [0.0.0.0]

这是我当前的输出 - 我想获取数据框中每行的每个项目并附加到列表中

curled_ips_list = []
ip_addresses_found = []
ip_address_format = (r'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b')
with open(website_file_path, 'r', encoding='utf-8-sig') as curled_ips_file:
    found_ips_reader = pd.read_csv(curled_ips_file, names=['IPs'], delimiter='\n', quoting=csv.QUOTE_NONE, engine='c')
    found_ips_reader = pd.Series(found_ips_reader['IPs'])
    curled_ips_list = found_ips_reader[found_ips_reader.str.contains(ip_address_format)]
    curled_ips_list = curled_ips_list.str.findall(ip_address_format)
    curled_ips_list = pd.DataFrame(curled_ips_list)
    curled_ips_file.close()

尚未收到任何错误消息,但不确定如何处理

标签: python-3.xpandasdataframe

解决方案


由于您没有提到您需要的输出,我假设您需要以下内容。

#Load your IPs in a dataframe as the one that you have mentioned above.

iplist = df['IPs']

[ip for sublist in iplist for ip in sublist]
['172.16.254.1',
 '192.168.1.15',
 '255.255.255.0',
 '192.0.2.1',
 '255.255.255.0',
 '192.0.2.1',
 '172.16.254.1',
 '0.0.0.0']

推荐阅读