gpt4 book ai didi

python - 使用 Pandas 处理 CSV 文件并将处理文件的输出与现有文件进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:12 26 4
gpt4 key购买 nike

我正在尝试处理一个 CSV 文件并提取主机名并将提取保存到一个名为 host_file1 的文件中,然后将该文件与现有的文本文件进行比较,即 host_file2,所以 csv 处理工作正常。

现在,正如我所说,我想在两个文件之间做一些主机名比较,我想要的是将 host_file2 中的主机名与 host_file1 相匹配,所以如果主机名在 host_file2 但不在 host_file1 中打印主机名,不要打印两个文件中的主机名。

我已经用 set 尝试了类似下面的方法,但它只是给出了不同之处,而不是我想要的。

#!/python/v3.6.1/bin/python3
from __future__ import print_function
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
import pandas as pd
##### Python pandas, widen output display to see more columns. ####
pd.set_option('display.height', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)
##################### END OF THE Display Settings ###################

df_csv = pd.read_csv(input("Please input the CSV File Name: "), usecols=['Platform ID', 'Target system address']).dropna()
hostData = df_csv[df_csv['Platform ID'].str.startswith("CDS-Unix")]['Target system address']
hostData.to_csv('host_file1', header=None, index=None, sep=' ', mode='a')

with open('host_file1', 'r') as f:
dataset1 = set(f)
with open('host_file2', 'r') as f:
dataset2 = set(f)
for i, item in enumerate(sorted(dataset1 ^ dataset2)):
print(str(item))
# shorter
"""
with open('host_file1') as f1, open('host_file2') as f2:
dataset1 = set(f1)
dataset2 = set(f2)
"""

两个不同的主机名文件:

host_file1

vmhost01

vmhost02

vmhost03

vmhost04

vmhost05

vmhost06

vmhost07

vmhost08

vmhost09

vmhost10

host_file2

vmhost01

vmhost02

vmhost03

vmhost04

vmhost05

vmserver01

vmhost07

vmhost08

vmserver02

vmhost10

期望的结果:

vmserver01
vmserver02

最佳答案

我认为你需要减法集:

for i, item in enumerate(sorted(dataset2 - dataset1)):
#alternative
#for i, item in enumerate(sorted(dataset2.difference(dataset1))):
print(str(item))
vmhost01
vmhost02
vmserver01
vmserver02

最后一个列表理解的解决方案:

s = set(dataset1)
out = [x for x in dataset2 if x not in s]
print (out)
['vmserver02', 'vmhost02', 'vmhost01', 'vmserver01']

关于python - 使用 Pandas 处理 CSV 文件并将处理文件的输出与现有文件进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53720331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com