python - 如何获得同一天的两个条目之间的差异?
问题描述
我有以下熊猫数据框:
import pandas as pd
df = pd.DataFrame({"datetime": ["30.12.1999 00:59:00", "30.12.1999 23:59:00", "31.12.1999 00:59:00", "31.12.1999 23:59:00"], "b": [4, 15, 26,7]})
df["datetime"] = pd.to_datetime(df.datetime)
df["date"]=df.datetime.dt.date
看起来像:
datetime b date
0 1999-12-30 00:59:00 4 1999-12-30
1 1999-12-30 23:59:00 15 1999-12-30
2 1999-12-31 00:59:00 26 1999-12-31
3 1999-12-31 23:59:00 7 1999-12-31
数据框实际上有更多行,但以下原则仍然有效:一天只有两行。
我想得到两个值之间的差异b
。所以在上面的例子中,我希望得到一个如下所示的数据框:
date b_delta
0 1999-12-30 11
1 1999-12-31 -19
我怎样才能做到这一点?
解决方案
最简单的方法是:
df.set_index('date').groupby('date')['b'].diff().reset_index(name='b_delta').dropna()
输出:
date b_delta
1999-12-30 11.0
1999-12-31 -19.0
推荐阅读
- python - 将递归函数转换为迭代函数
- javascript - 引导 + C3;网格布局在加载时不起作用
- sql - 如何解决连接错误 VB.net & SQL?
- c# - 将json作为字符串传递是否正确?
- c# - 在 C# WinForm App 中将图像存储在服务器硬盘上的最佳方式
- clojure - 为什么clojure 会尝试解析这个符号?
- c# - 将 Directshape 与 Level Revit API 相关联
- crashlytics - Crashlytics 的移动应用程序是否使用 TLS 1.2?
- vba - Excel VBA:USerform P&L 已输入列
- php - 获取 XML 文件的相对路径的绝对路径