9

インデックスのリストに基づいて、dask データフレームから行を選択したいと考えています。どうやってやるの?

例: たとえば、次の dask データフレームがあるとします。

dict_ = {'A':[1,2,3,4,5,6,7], 'B':[2,3,4,5,6,7,8], 'index':['x1', 'a2', 'x3', 'c4', 'x5', 'y6', 'x7']}
pdf = pd.DataFrame(dict_)
pdf = pdf.set_index('index')
ddf = dask.dataframe.from_pandas(pdf, npartitions = 2)

さらに、私が興味を持っているインデックスのリストがあります。

indices_i_want_to_select = ['x1','x3', 'y6']

これから、指定された行のみを含むdaskデータフレームを生成したいと思いますindices_i_want_to_select

4

2 に答える 2

10

編集: dask がリストの loc をサポートするようになりました:

ddf_selected = ddf.loc[indices_i_want_to_select]

以下はまだ機能するはずですが、もう必要ありません。

import pandas as pd
import dask.dataframe as dd

#generate example dataframe
pdf = pd.DataFrame(dict(A = [1,2,3,4,5], B = [6,7,8,9,0]), index=['i1', 'i2', 'i3', 4, 5])
ddf = dd.from_pandas(pdf, npartitions = 2)

#list of indices I want to select
l = ['i1', 4, 5]

#generate new dask dataframe containing only the specified indices
ddf_selected = ddf.map_partitions(lambda x: x[x.index.isin(l)], meta = ddf.dtypes)
于 2016-11-07T23:04:07.273 に答える