Saya perlu mengulangi nilai unik dari kerangka data dask. Saya menggunakan .unique() untuk mendapatkan nilai unik dari kolom tetapi sekarang saya diberikan objek dask yang tidak dapat saya gunakan untuk beralih. Saya perlu tahu cara mengeluarkan nilai-nilai unik ini dari objek dask ini ke dalam daftar (atau yang serupa) sehingga saya dapat menggunakan nilai-nilai itu untuk beralih melalui kerangka data dask.

df = dd.read_csv('file.csv')
df.column1.unique()
for unique_value in column1_array:
    print(unique_value)

Ini adalah kesalahan yang saya dapatkan: NotImplementedError: Seri getitem hanya didukung untuk objek seri lain dengan struktur partisi yang cocok

1
ldsands 2 Juni 2019, 18:17

2 jawaban

Jawaban Terbaik

Masalah ini telah diselesaikan di dask=2.3.

In [1]: import pandas as pd
   ...: import dask.dataframe as dd
   ...: import dask

In [2]: dask.__version__
Out[2]: '2.3.0'

In [3]: df = pd.DataFrame({"temp1":[1,2,2,4],"temp2":[1,2,2,4]})
   ...: ddf = dd.from_pandas(df,npartitions=2)
   ...: for unique_value in ddf.temp1.unique():
   ...:     print(unique_value)
   ...:     
1
2
4
1
Blane 23 Agustus 2019, 02:07

Anda dapat menggunakan metode .compute() untuk mengonversi Seri Dask Anda menjadi objek Seri Pandas dan kemudian mengulanginya.

for x in s.compute():
    ...

Lihat https://docs .dask.org/en/latest/dataframe-best-practices.html#reduce-and-then-use-pandas

Ada juga metode iteritems dan iterrows

1
MRocklin 2 Juni 2019, 19:00