CSV解析Python,输出具有特定值的某些行

时间:2017-06-21 20:51:54

标签: python python-2.7 csv parsing

我想使用python来解析CSV文件,并仅输出具有特定值的某些行。这是我到目前为止的代码,

import csv  

f = open('alerts2.csv')
csv_f = csv.reader(f)
li1 = []
header = next(csv_f)
for row in csv_f:

    # li1.append(row[5])
    # li1.append(row[0]) 
    severity = int(row[0]) #Has The the integer value from 10 - 40
    Status = str(row[1])
    PolicyName = str(row[2])
    PolicyBlockName = str(row[3])
    PolicyRuleName = str(row[4])
    Summary = str(row[5])
    li1.append(severity)
    li1.append(Summary) # string variables
print li1
f.close()

这将输出来自严重性和摘要的所有值,但我希望它仅在严重性值为“10”时输出严重性和摘要的数据。 我想使用列表“li1”并搜索列表,如果找到值“10”,则输出值。有什么建议??我是一个蟒蛇新手。

2 个答案:

答案 0 :(得分:2)

import pandas as pd

alerts_df = pd.DataFrame.from_csv('alerts2.csv', index_col=None)
print alerts_df[alerts_df['severity'] == 10]['Summary']

答案 1 :(得分:1)

只需将此检查添加到csv行的循环中:

for row in csv_f:
    severity = int(row[0])
    if severity != 10:
        continue

如果severity值不是10,则循环将continue与下一行,并且不会对当前行执行任何操作。