我正在尝试使用pandas
来解析我的CSV文件,其中我的CSV文件具有多个列,但是我只需要选择某些列即可。我想从我的CSV文件中获取'Platform ID'
,它可能以CS-Unix*
开头,下一个是'Target system address'
,其中包含Sever名称,可以是任何名称,因此我需要打印出全部值另一列也是最后一列'Failure reason'
,这也是一个症状,可能是需要打印的任何内容。
我提到了CS-Unix-*
,因为它可以是CS-Unix-
之后的任何东西
但是,在另一个字段中,我选择*
打印该值,因为服务器名称可能会再次不同。
我的数据格式为..
Platform ID Target system address Failure reason
CS-Unix-RootAccounts-SSH Serer1 xyz
在我正在尝试但无法工作的地方以下。
import csv
import pandas as pd
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)
data = pd.read_csv('/home/karn/plura/Test/Python_Pnada/Cyber_July.csv', usecols=['Platform ID', 'Target system address', 'Failure reason'])
#data.drop(data.index[0], inplace=True)
hostnames = data[(data['Platform ID']=='CDS-Unix-*') | (data['Target system address'] == '*' )]['Failure reason']
print(hostnames)
请指导前进。
答案 0 :(得分:1)
这应该为所有平台ID为CS-Unix-*
的行提供失败原因。
hostnames = data[data['Platform ID'].str.startswith("CS-Unix-")][['Target system address','Failure reason']]
startswith()返回一个布尔值,指示元素是否以字符串开头作为参数传递给它。