2016-08-30 72 views
1

我創建一個df=dask.DataFrame.read_csv('s3://bucket/*.csv')數據幀。當我執行一個df[df.a.isnull()].compute操作時,我得到一組符合過濾標準的行。我想知道這些返回的行屬於哪些文件,以便我可以調查爲什麼這些記錄具有空值。該DataFrame具有數十億行和記錄與遺漏值都在個位數。有沒有一種有效的方式來做到這一點?如何映射`dask.DataFrame`的結果的CSV

回答

0

如果您的CSV文件很小那麼我建議創建每個文件

df = dd.read_csv('s3://bucket/*.csv', blocksize=None) 

一個分區,然後計算每個分區空元素的數量:

counts = df.a.isnull().map_partitions(sum).compute() 

然後,您可以找到的文件名

from s3fs import S3FileSystem 
s3 = S3FileSystem() 
filenames = s3.glob('s3://bucket/*.csv') 

並比較兩個

dict(zip(filenames, counts)) 
+0

作品,謝謝! –