2017-06-21 5 views
-1

私は、CSVファイルを解析するためにpythonを使用し、特定の値を持つ特定の行のみを出力したいと考えています。これは私が今まで持っているコードで、CSV特定の値を持つ特定の行を出力するPythonを解析する

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"が見つかった場合は値を出力すると考えていました。助言がありますか??私はPython初心者です。

答えて

1

だけのCSV行の上にループには、このチェックを追加します。

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

severity値が10でない場合、ループの次の行でcontinueをし、現在の行の次の何もしません。

+0

ありがとうございますが、あなたのソリューションについてもう少し説明できますか?ありがとう。 – KoushKilla

+0

pythonのドキュメントには、[continue文forループ]に関するセクションがあります(https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-ループ)。助けることを望む! –

2
import pandas as pd 

alerts_df = pd.DataFrame.from_csv('alerts2.csv', index_col=None) 
print alerts_df[alerts_df['severity'] == 10]['Summary'] 
関連する問題