我有一个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)
答案 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