2016-07-09 5 views
8

Wenn der folgende Code ausgeführt wird, das Ergebnis von dask.dataframe.head() hängt von nPartitionen:beeinflusst npartitions das Ergebnis von dask.dataframe.head()?

import dask.dataframe as dd 
import pandas as pd 
df = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]}) 
ddf = dd.from_pandas(df, npartitions = 3) 
print(ddf.head()) 

Dies ergibt das folgende Ergebnis:

A B 
0 1 2 

Wenn jedoch I nPartitionen auf 1 gesetzt, oder 2, bekomme ich das erwartete Ergebnis:

A B 
0 1 2 
1 2 3 
2 3 4 

Es scheint wichtig zu sein, dass npartitions niedriger ist als die Länge des Datenrahmens. Ist das beabsichtigt? Muss ich die Größe meiner Daten immer überprüfen, bevor ich sie in einen Dask Frame umwandle?

+0

Alle Ihre Daten (Zeilen) sind immer noch da, obwohl sie nicht vollständig von '.head()', '.tail()' usw. angezeigt werden. Wenn Sie sie aber mit 'to_hdf()' speichern, 'to_csv()' usw., dann werden __all__ Zeilen geschrieben. – MaxU

Antwort

4

Gemäß der Dokumentation dd.head() prüft nur die erste Partition:

head(n=5, compute=True)

Erste n Zeilen des Datensatzes

Caveat dies nur überprüft die ersten n Zeilen der ersten Partition.

Also die Antwort ist ja, dd.head() wird durch wie viele Partitionen gibt es in Ihrem dask Datenframe beeinflusst.

jedoch die Anzahl der Zeilen in der ersten Partition wird erwartet, dass sie größer ist als die Anzahl der Zeilen, die Sie in der Regel zeigen wollen, wenn dd.head() mit — sonst dask verwenden, sollten sie nicht zahlen. Der einzige häufige Fall, in dem dies möglicherweise nicht zutrifft, ist, wenn die ersten n Zeilen/Elemente nach dem Filtern genommen werden, wie in this question erläutert.

+0

Ja, die Untersuchung eines gefilterten Datensatzes war die Situation, in der ich etwas überrascht war über das Ergebnis des Kopfs;) Danke, dass Sie auf die Dokumentation verwiesen haben. –

Verwandte Themen