以下是我的数据框:

metric_name ts count
m_1         1  10
m_2         1  20
m_1         2  12
m_2         2  19

我希望每个指标名称的差值为count

m_1         1    0  # start for m_1
m_2         1    0  # start for m_2
m_1         2    2  # 12 - 10
m_2         2   -1  # 19 - 20

我该怎么做呢?

推荐答案

np.diff函数计算每组Transform个值(计算第n次离散差):

df.groupby('metric_name')['count'].transform('diff').fillna(0)

0    0.0
1    0.0
2    2.0
3   -1.0

Python-3.x相关问答推荐

如何在输入正确的用户名和密码时添加按钮?

为什么在Python中使用RANDINT函数时会出现此TypeError?

按长度和字母数字对Pandas 数据帧列进行排序

公开数据中的卫星图像网页抓取优化

从 https://www.niftytrader.in/stock-options-chart/sbin 提取 SBIN 股票最大痛苦值的 Python 代码不起作用 - 我错过了什么?

如何沿单列获取嵌套列表中的唯一值?

为什么 return node.next 会返回整个链表?

以编程方式映射 uniprot ID 时如何解决 400 客户端错误?

如何在数据['column']中的'string'等条件下应用pandas

如何在 Python3 中添加带有标志的命令行参数?

为什么中断比引发异常更快?

python 3的蓝牙库

在 Ubuntu 上为 Python3 安装 mod_wsgi

无 Python 错误/错误?

在python中打印下标

使用完整路径激活 conda 环境

try 在 Mac OS 中运行此命令pipenv install requests时出错

如何强制 Sphinx 使用 Python 3.x 解释器

将 Python SIGINT 重置为默认信号处理程序

在 Visual Studio Code 中调试 Scrapy 项目