2017-01-13 164 views
-2
People  OS  Games Owned 
Anthony Windows  120 
Alissa Windows  70 
Jordan Windows  20 
Khan  Mac   47 
Benny  Mac   23 
Anastasia Linux  16 
McCurdy  Linux  10 

我在想,如何过滤掉拥有超过20款游戏的玩家,而且他们没有Mac OS系统。我需要通过一个python脚本来完成它,当它运行时,它会将数据输出到一个单独的文件中,如文本文件或其他东西。谢谢!如何通过Python过滤出CSV中的特定数据?

回答

1

下面是在纯Python一个解决方案,经滤波的输出写入到文本文件的请求(CSV)。

import csv 

with open('games.csv', 'rb') as csvfile: 
    # handle header line, save it for writing to output file 
    header = next(csvfile).strip("\n").split(",") 
    reader = csv.reader(csvfile) 
    results = filter(lambda row: row[1] != 'Mac' and int(row[2]) > 20, reader) 

with open('output.csv', 'wb') as outfile: 
    writer = csv.writer(outfile) 
    writer.writerow(header) 
    for result in results: 
     writer.writerow(result) 
0

我建议使用熊猫图书馆。

代码基本上如下:

import pandas as pd 

data = pd.read_csv('put in your csv filename here') 
# Filter the data accordingly. 
data = data[data['Games Owned'] > 20] 
data = data[data['OS'] == 'Mac'] 
+0

感谢您的帮助! – SkytechCEO