2016-01-23 244 views
0

我有一個csv文件,其中包含我需要根據特定條件(使用python)刪除的數據。我當數據需要被刪除的條件是:根據條件替換csv數據(python)

  • X < -10
  • X> 10
  • -1.0E-300 < X < 1.0E-300

到目前爲止我只有:

with open("Infile.csv","rb") as infile,open("Outfile.csv","wb") as outfile: 
     reader = csv.reader(infile) 
     writer = csv.writer(outfile) 
     for row in reader: 
      row = [x.replace(x, 'NaN') if -10 <= x <= 0 else x for x in row] 
      writer.writerow(row) 

這不會改變輸出文件中的任何內容。

數據或許應該由0或NaN代替,雖然它並不真正的問題

+1

'x'是一個文本,所以你不能將它與數字進行比較 - 即使文本只有數字。你必須將文本轉換爲int()或float()。 – furas

+0

'不起作用'是不夠好的描述。做什麼,有什麼不對? – hpaulj

+0

@furas我該如何爲整個csv文件做到這一點? –

回答

0

您以前比較將文本轉換爲int()float()

要在x < -10x > 10你需要刪除元素:

[ x if -10 <= float(x) <= 10 else 'NaN' for x in row] 

BTW:也許你應該使用模塊pandas。這可能會更容易。