熊猫分组时,只有一个值分组时

时间:2018-06-22 15:45:16

标签: pandas pandas-groupby

我想计算给定变量的累积计数。因此,我希望以下代码可以正常工作

import pandas as pd
import numpy as np

df = pd.DataFrame.from_records({'x': [0, 1, 0, 1, 1]})
df2 = pd.DataFrame.from_records({'x': [0, 0, 0, 0, 0]})

result = df.groupby('x').apply(lambda x: pd.Series(np.arange(len(x)), index=x.index)).reset_index(level=0, drop=True).sort_index()
assert (result == [0, 0, 1, 1, 2]).all()

result2 = df2.groupby('x').apply(lambda x: pd.Series(np.arange(len(x)))).reset_index(level=0, drop=True).sort_index()
assert (result2 == [0, 1, 2, 3, 4]).all()

第一个断言为True,但第二个则不是。 为什么?

1 个答案:

答案 0 :(得分:0)

这似乎是一个未解决的问题。

请参见BUG: inconsistent return format of Dataframe group apply function

一种解决方法可以是:

assert (result2.values == [0, 1, 2, 3, 4]).all()