搜索数据框架列pandas中的名称



我试图将我的服务器列表与列Server Name中的pandas数据框匹配,如果列表中的名称与Server Name匹配,则打印整行。

有机会的名称是my_List不完全匹配像一个服务器名称在my_List是tick1001.example.us.com而在Server Name

This This This my kind of list

my_List = ['tick1001.example.us.comn', 'tick2001.example.us.comn', 'tick1003.example.us.comn']

下面是数据样本。

Server         Server Name             Model                   Processor                          Proc. Count  Memory  Serial Number   iLO iLO FW  Firmware    Appliance Name  VIC
enc2021, bay 1  tick2041.example.us.com ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M272300GJ  1. 10.127.3.31  2.53 May 03 2017    I36 v2.40 (02/17/2017)  OV C7000 enclosures 1
ENC2013, bay 1  tpc2111.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M2708026H  1. 10.127.1.198 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc1018, bay 1  tpc1173.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   262144  2M272101PR  1. 10.127.2.143 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
ENC1002, bay 1  tpc1012.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz   2   524288  2M26250531  1. 10.127.0.109 2.40 Dec 02 2015    I36 v2.00 (12/28/2015)  OV C7000 enclosures 1
ENC1005, bay 1  tick1003.example.us.com ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz   2   524288  2M262505VB  1. 10.127.0.70  2.62 Jan 09 2019    I36 v2.72 (03/25/2019)  OV C7000 enclosures 1
ENC2003, bay 1  tpc2023.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz   2   524288  2M262602L6  1. 10.127.0.234 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc2015, bay 1  tpc2141.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   262144  2M272101ML  1. 10.127.2.173 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc2016, bay 1  tpc2156.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   262144  2M272101PJ  1. 10.127.2.188 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc1013, bay 1  tpc1098.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   262144  2M272101N0  1. 10.127.2.68  2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc2019, bay 1  tpc2201.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   262144  2M272101NQ  1. 10.127.2.233 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
ENC2005, bay 1  tick2001    ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M26360507  1. 10.127.0.78  2.62 Jan 09 2019    I36 v2.72 (03/25/2019)  OV C7000 enclosures 1
ENC2006, bay 1  tick1001    ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M263604ZZ  1. 10.127.0.58  2.40 Dec 02 2015    I36 v2.20 (05/05/2016)  OV C7000 enclosures 1
ENC2009, bay 1  tpc2060.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz   2   393216  2M263800Y4  1. 10.127.1.68  2.70 May 07 2019    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
enc1025, bay 1  tpc1250.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz   2   393216  2M26100687  1. 10.127.3.231 2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1
ENC2008, bay 1  tpc2045.example.us.com  ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M264800VR  1. 10.127.1.53  2.55 Aug 16 2017    I36 v2.52 (10/25/2017)  OV C7000 enclosures 1

下面是我的代码:

import pandas as pd
my_List = open("vic_hosts").readlines()
df = pd.read_csv('report.csv')
df = [df['Server Name'].isin(my_List)]
print(df)

:

Server          Server Name             Model                   Processor                          Proc. Count  Memory  Serial Number   iLO iLO FW  Firmware    Appliance Name  VIC
ENC1005, bay 1  tick1003.example.us.com ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v3 @ 2.60GHz   2   524288  2M262505VB  1. 10.127.0.70  2.62 Jan 09 2019    I36 v2.72 (03/25/2019)  OV C7000 enclosures 1
ENC2005, bay 1  tick2001    ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M26360507  1. 10.127.0.78  2.62 Jan 09 2019    I36 v2.72 (03/25/2019)  OV C7000 enclosures 1
ENC2006, bay 1  tick1001    ProLiant BL460c Gen9    Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz   2   524288  2M263604ZZ  1. 10.127.0.58  2.40 Dec 02 2015    I36 v2.20 (05/05/2016)  OV C7000 enclosures 1

尝试如下:

使用read().splitlines(),因为每行都有其行末字符(nr),就像你的例子一样;这样字符就被删除了。

my_List = open('vic_hosts').read().splitlines()
df = pd.read_csv('report.csv')
df = df[df['Server Name'].isin(my_List)]
print(df)

这个应该可以工作。

最新更新