使用Pandas / Python过滤CSV文件

时间:2014-03-10 22:00:15

标签: python csv pandas

我有一个CSV文件,我想过滤它,我只保留行数“d”大于0的行。

文件:

  index  value    d
0    975  25.35   5
1    976  26.28   4
2    977  26.24   1
3    978  25.76   0
4    979  26.08   0

我使用熊猫来做到这一点,但它没有成功:

df = pd.read_csv("ThisFileL.csv")
df = df[(df["d"]>0)]

我也使用了其他方法,但处理600mb的文件太长了。

with open("ThisFileL.csv", 'rb') as source:
    writer = csv.writer(source)
    for line in source:
        if line.d > 0 :
              writer.writerow(headers)

1 个答案:

答案 0 :(得分:2)

对不起,没有熊猫解决方案,但这是基本的Unix工具无法打败的任务。如果你使用Windows,你也可以使用Cygwin:

$ awk '{if ($4 > 0) print $0}' t.csv 
  0    975  25.35   5
  1    976  26.28   4
  2    977  26.24   1

您可以按照所需的方式过滤数据,将其保存到另一个文件,然后使用pandas读取:

$ awk '{if ($4 > 0) print $0}' t.csv >filtered.csv