2016-04-16 47 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