使用Pandas和Python过滤CSV文件程序

时间:2017-10-17 18:17:02

标签: python pandas csv dataframe

我目前有一项任务涉及下载CSV主文件,删除列A - 列B <= 0的任何行,以及列C等于给定短语的行。我正在寻找创建一个程序:

  • 导入CSV文件
  • 删除A列 - B列<= 0
  • 的所有行
  • 要求输入在C列上过滤一个或多个短语
  • 将CSV导出为新文件

到目前为止,我已经确定最好的方法是使用Pandas&#39;数据帧功能,因为我之前使用它来对CSV文件执行其他操作:

&#13;
&#13;
import pandas as pd

file = read_csv("sourcefile.csv")
file['NewColumn'] = file['A'] - file['B']
file = file[file.NewColumn > 0]
columns = ['ColumnsIWantToRemove']
file.drop(columns, inplace=True, axis=1)
phrases = input('What phrases are you filtering for? ')
file = file[file.C = phrases]
file.to_csv('export.csv')
&#13;
&#13;
&#13;

我的问题是,如何为多个短语过滤C列?我希望程序获取一个或多个短语,并且只显示C列值等于其中一个值的行。任何指导都会很棒。谢谢!!

2 个答案:

答案 0 :(得分:0)

我只想要输入以逗号分隔:

phrases = phrases.split(",")
file = file[file.C.isin(phrases)]

答案 1 :(得分:0)

也许这可以帮到你:

import csv

input = open(sourcefile.csv, 'rb')
output = open(out_sourcefile, 'wb')
writer = csv.writer(output)
for row in csv.reader(input):
    if (phrases you want C column not to be,and you can add here multiple phrases):
        continue
        writer.writerow(row)
input.close()
output.close()