亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Pandas 處理 CSV 文件并將處理后的文件的輸出與現有文件進行比較

使用 Pandas 處理 CSV 文件并將處理后的文件的輸出與現有文件進行比較

一只斗牛犬 2021-09-14 13:46:30
我正在嘗試處理一個 CSV 文件并提取主機名并將提取保存到一個名為的文件中host_file1,然后將此文件與現有的文本文件進行比較,即host_file2,因此 csv 處理工作正?!,F在,正如我所說,我想在兩個文件之間進行一些主機名比較,我想要的是將主機名host_file2與匹配host_file1,因此如果主機名在host_file2但不在host_file1打印主機名中,請不要打印兩者中的主機名文件。我已經嘗試過類似下面的設置,但它只是給出了我想要的不同。#!/python/v3.6.1/bin/python3from __future__ import print_functionfrom signal import signal, SIGPIPE, SIG_DFLsignal(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)"""兩個不同的主機名文件:主機文件1vmhost01vmhost02vmhost03vmhost04vmhost05vmhost06vmhost07vmhost08vmhost09vmhost10主機文件2vmhost01vmhost02vmhost03vmhost04vmhost05vmserver01vmhost07vmhost08vmserver02vmhost10想要的結果:vmserver01vmserver02
查看完整描述

3 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

我認為你需要減法集:


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']


查看完整回答
反對 回復 2021-09-14
  • 3 回答
  • 0 關注
  • 255 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號