python - Pandas groupby 索引不正确
问题描述
我可能会误解该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"
解决方案
也许是错误,但如果将索引转换为list
所有工作都很好:
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
推荐阅读
- r - 用单一观察绘制颜色条
- android - 如何删除房间持久性中的多个实体/对象
- java - Spring Boot 中的 Kafka Stream 应用程序不断增长
- python - 退出特定的while循环
- java - 如何在 android 的 sqlite 中删除 5 到 10 条记录?
- python - 从符号“<>”和嵌套案例“<<>>”之间的句子中提取词项
- javascript - 在 auth0-js 中使用 checkSession() 时出现“origin_Mismatch”
- typescript - 如何在 TypeScript 中定义不透明类型?
- google-maps - 谷歌地图到开放街道地图
- antlr4 - 读取字符串时如何在ANTLR4中保留空格?