pandas - 当只有一个值 groupedby 时,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 但不是第二个。为什么 ?
解决方案
这似乎是一个悬而未决的问题。
请参阅BUG:Dataframe 组应用函数的返回格式不一致。
解决方法可以是:
assert (result2.values == [0, 1, 2, 3, 4]).all()
推荐阅读
- ruby - 池大小没有产生足够的进程
- vue.js - vue-next-level-scroll 强制它在 DOM 渲染后单击。Vuejs
- python - 由于内存耗尽,循环程序冻结
- javascript - Tampermonkey 脚本会根据页面的打开和呈现方式给出不同的结果?(内容相同)
- ruby-on-rails - Rails 自定义 ActionView::Template::Handler 未发送数据
- angular - 按下按钮时如何滚动到页面上的新区域
- ruby-on-rails - 编辑但变成创建
- javascript - req.query 导致空对象
- ios - 为什么 AVAsset 状态变化的观察者不起作用?
- microservices - 我们可以在最终一致性期间使用 hystrix 回滚吗?