2017-08-30 94 views
0

我開始基於行內容編輯Excel文檔的一些Python代碼。我的編碼不是很強,所以我正在尋找一些方向。根據標準刪除excel中的行

的Excel文檔是一組從孤立的照片上活力的粉紅色色度鍵的背景中提取像素LAB值。

這些Excel文檔太大(它們的範圍從大約200,000行接近的過人之處行能力的限制)使用的查找和替換功能,只是消除我不需要行。

我發現類似這樣here

然而線程,我需要它來分析的三排(而不是一個)中的內容,如果他們符合兩個數字之間。

一些實施例的數據: image

列標記爲L,A和B是程序需要去篩選的那些。 謝謝。

+1

您可以在描述中添加數據表,而不僅僅是圖像鏈接嗎?另外,你可以發佈到目前爲止你嘗試過的嗎? – matov

回答

0

我想你可能意思是說,你想看看只有三列,而不是隻有三排?

我的第一個建議是,保存excel工作表爲CSV如果可能的話。 (如果不是我敢肯定,有包讀取.xls的,我只是不知道他們,因爲是的.csv更容易使用)

無論如何,有幾個選項。由於該文件對於Excel來說太大,這對於管道來說是一個很好的用例。 (對於這種方法,如果你在windows上,你需要啓用開發者模式並安裝bash客戶端)。規範地從慶典:

cat big_file.csv | python analyze_big_file.py > output 

很明顯,你也可以使用Python的家當把它清理乾淨:

cat big_file.csv | ./analyze_big_file.py > output 

從這裏,你只需要編寫Python腳本。它應該是這個樣子:

import sys,csv 
for line in sys.stdin: 
    line_reader=csv.reader(line, delimiter=',', quotechar='|') 
    for elem in line_reader: 
     # do something 
     # eg, if <condition>: sys.stdout.print(elem) 
     # sys.stdout.print(',') 
    # sys.stdout.print('\n') 

這種做法是很好的,可以不適合到內存非常大的文件,並讓您的每一個元素遍歷以csv

另一種方法是加載該文件直接進入python。優點是您不必擔心打印到標準輸出或瞭解>,|運營商。 (也許你不必打開終端,如果你使用原子或一些IDE)。此外,除了打印到標準輸出之外,你還可以做一些很酷的事情(例如,存儲結果並對它們做一些輔助工作 - 這也可以用管道來實現,但是你必須爲第一個輸出寫一個全新的.py腳本)

這裏,只是檢查出CSV包。這非常簡單。例如:

import sys 
with open('big_file.csv',newline='') as f: 
    freader=csv.reader(f,delimiter=',',quotechar='\') 
    for elem in freader: 
     #do something with elem.