【发布时间】:2017-09-19 18:56:08
【问题描述】:
我正在尝试为这个测试示例运行 groupby apply in dask
import pandas as pd
import dask.dataframe as dd
tdf = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6, 7, 8, 9],
'b': [4, 5, 6, 3, 2, 1, 0, 0, 0]},
index=[0, 1, 3, 5, 6, 8, 9, 9, 9])
ddf = dd.from_pandas(tdf, npartitions=3)
def func(df):
df['b'] = df.b - df.b.mean()
return df
meta = tdf.groupby('a').apply(func)
rddf = ddf.groupby('a').apply(func,meta=tmeta).compute()
我在 windows 上的 jupyter notebook anaconda python_version = 3.6 中执行此代码,我收到错误 'ValueError: cannot reindex from a duplicate axis' 并且只重复执行代码的rddf部分,我得到了
a b
6 5 0.0
9 9 0.0
0 1 0.0
1 2 0.0
8 6 0.0
9 7 0.0
9 8 0.0
3 3 0.0
5 4 0.0
为什么会这样,相同的代码,不同的结果?
【问题讨论】:
-
不可能通过
tdf = tdf.reset_index(drop=True)创建默认非重复索引? -
我尝试添加
tdf = tdf.reset_index(drop=True)但是当我执行 rddf 我得到两个输出