python - Pandas groupby 索引不正确

标签 python pandas group-by apply

我可能误解了pd.GroupBy函数的作用,但我相信这应该断言True。为什么它断言False

a = pd.DataFrame([range(3)]*3,index=map(str, range(3))).T
a.iloc[:,0] = [10, 11, 11]

a.groupby('0').apply(lambda x: print(x.index))

indexes = a.groupby('0').apply(lambda x: x.index)
print(indexes)

index_lengths = a.groupby('0').apply(lambda x: len(x.index))
print(index_lengths)

indexes_lengths = a.groupby('0').apply(lambda x: x.index).apply(len)
print(indexes_lengths)

assert indexes_lengths.equals(index_lengths), "Apply indexes are returning the wrong index"

最佳答案

也许是错误,但如果将索引转换为列表,一切都很好:

indexes = a.groupby('0').apply(lambda x: list(x.index))
print(indexes)
0
10       [0]
11    [1, 2]
dtype: object

indexes_lengths = a.groupby('0').apply(lambda x: list(x.index)).apply(len)
print(indexes_lengths)
0
10    1
11    2
dtype: int64

index_lengths = a.groupby('0').apply(lambda x: len(x.index))
print(index_lengths)
0
10    1
11    2
dtype: int64

关于python - Pandas groupby 索引不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58130608/

相关文章:

python - 我的 pandas 数据框中有两列。一列有一些相同的值(id),另一列中的相应值有票数

MySQL 每隔 15 分钟查询一次分组数据

mysql - 选择 CASE WHEN ALIAS with COUNT 不返回零值

python - 将从一个函数返回的多个一维数组组合成一个二维数组python

python - imDbPy 示例不起作用 : 'key error'

python - 在Python中,如果你返回一个字符串,它将显示在其周围的引号中,但如果你打印该字符串,它将不会显示在引号中。为什么?

mysql - 无法累加和 `COUNT(*)`

python - 在 Python 中使 OS 打开目录

python - 如何在另一个 python 文件中运行我的 python 文件?

python - 将唯一列转换为具有相应值的 SFrame 标题