2016-04-16 46 views
-2

我有一個數據集。它有一個名爲'target','v1','v2''v3'...'v10'的列。現在我想打印'目標'值爲1的列'v2'的所有值。我已經使用pandas dataframe在python中導入了這個數據集。 Python中的命令是什麼?在Python中打印'target'值爲1的列'v2'的所有值

+0

你有沒有在任何一種數據結構,或只是作爲一個字符串? –

+0

我已經使用熊貓數據框在python中導入了這個數據集。 – as24

回答

0

1)導入適當的模塊(應該與你的Python版本)

import csv 
    import re 

    infile = 'YOUR PATH AND FILENAME HERE' 

2)打開文件,並創建列標題和行

def open_csv_file(x): 
     with open(x, 'rb') as f: 
      reader = csv.reader(f, delimiter=';') 
      headers = reader.next() 
      each_row = list() 
      row_list = list() 
      for row in reader: 
       each_row = (dict(zip(headers, row))) 
       row_list.append(each_row) 
     return(row_list) 

3的詞典)創建一個鍵列表中,僅選擇目標鍵(V2)

def process_list(row_list): 
     final_list = list() 
     for mydictionary in row_list: 
      key_list = list() 
      subkeys = ["v2"] 
     subdict = {x: mydictionary[x] for x in mydictionary if x in subkeys} 
     target_values = (subdict.values()) 
     key_list.append(target_values) 
     for item in key_list: 
      search_value = item[2] 
      if search_value == '2': 
       print(item) 
       final_list.append(item) 
    return(final_list) 

4)主流動

if __name__ == '__main__': 
row_list = open_csv_file(infile) 
process_list(row_list)) 
+0

我只意識到你已經將它作爲pandaframe - >我的函數處理常規csv文件(在這種情況下,用;作爲分隔符)。不過,也許你會發現這個有用! –

+0

後來我試了這個,它的工作原理是:data ['v2']。loc [data ['target'] == 1] – as24