python-3.x - 熊猫如何在月底前获得n天的日期
问题描述
假设我有一个数据框,第一列是股票交易日期。为方便起见,我在这里用数字表示日期。
data = pd.DataFrame({'date': [1,2,3,1,2,3,4,1,2,3],
'value': range(1, 11)})
我有另一个包含月末日期的数据框。所以首先我可以从这样的数据中获取月末行。
date value
2 3.0 3.0
6 4.0 7.0
9 3.0 10.0
我想获取monthend前n天的数据,例如1-day before
date value
1 2.0 2.0
5 3.0 6.0
8 2.0 9.0
我该如何编码。
解决方案
我正在使用cumsum
withgroupby
df1=data.groupby(data.date.eq(1).cumsum()).tail(1)
df1
Out[208]:
date value
2 3 3
6 4 7
9 3 10
df2=data.loc[df1.index-1]
df2
Out[213]:
date value
1 2 2
5 3 6
8 2 9
推荐阅读
- vue.js - vue.js:将定期重复的后台查询放在哪里
- entity-framework-6 - 实体框架 - 无法创建引用同一个表的多个 DbContext。- 解决方法
- swift - 面试任务。我们将如何解决它?
- python - 如何在 python + 慢速学习模型中修复此代码的索引错误?
- c# - 在 Lambda 表达式中使用方法 - HTMLDoc
- python - 使用 Google Sheet API v4 和 Python 中的 batchUpdate 在 Google Sheet 上编写 DataFrame
- javascript - 如何在使用 javascript 禁用其他输入之前启用所有输入?
- r - 使用 lapply 时出现未定义列错误
- javascript - Amcharts 4:如何组合 LineSeries 的工具提示
- c# - C# 代码在遇到断点时有效,否则在我禁用所有断点时无效 [Winforms]