Python熊猫仅提取所需的列和所需的值

时间:2018-07-16 03:59:04

标签: python pandas

我正在尝试使用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)

请指导前进。

1 个答案:

答案 0 :(得分:1)

这应该为所有平台ID为CS-Unix-*的行提供失败原因。

hostnames = data[data['Platform ID'].str.startswith("CS-Unix-")][['Target system address','Failure reason']]

startswith()返回一个布尔值,指示元素是否以字符串开头作为参数传递给它。