python - Groupby 和 agg 与 diff 一起使用时产生 NaN
问题描述
我有一个像这样的索引数据集
np.random.seed(1)
df = pd.DataFrame({'A': [1, 1, 2, 2],
'B': [1, 2, 3, 4],
'C': np.random.randn(4)},
index = [5,242,12,634])
现在我正在尝试按组来区分C
df.groupby('A').agg('diff')
这给了我输出
B C
5 NaN NaN
242 1.0 -2.492028
12 NaN NaN
634 1.0 -0.455332
我试图得到一个只有 2 行的结果数据框,其中包含这样的差异
B C
1.0 -2.492028
1.0 -0.455332
我怎样才能做到这一点?
解决方案
Firstdiff
不是一个 agg 函数,它将返回与原始数据帧相同的输出长度,如果您想要没有NaN
我们应该做的差异dropna
out = df.groupby('A').diff().dropna()
推荐阅读
- php - 如何同时使用 Digest 和 Basic Auth
- c# - 字符串到六进制字符串增加长度
- spring-boot - 如何在运行服务器时删除springboot中的登录页面(http://localhost:8080/login)同时在eclipse中导入Gradle项目
- winapi - 如何使用cabinet.dll API 调用将文件从VBA 添加到cab 文件?
- bazel - 执行从 bazel 规则作为参数传递的打字稿文件
- html - 如何让这个电话(样机)图像越过它的父容器?所以它看起来像在设计示例中
- c++ - 在继承层次结构中从成员函数销毁和重新创建当前对象
- c# - 从 json 获取项目并将其作为 Blazor wasm 中的参数传递
- html - 如何修复此验证器错误?- 元素 a 不能作为按钮元素的后代出现
- python - discord.py 中的多个可选参数