python - 均衡 Pandas 系列的索引以适应 Dataframe
问题描述
我有一个使用日期时间索引的熊猫数据框。我想在数据框中添加一列,该列返回特定数据切片的平均值。此列并不总是包含整个索引,我需要一种用零填充缺失部分的方法。
数据框:
[2020-7-26 | 29.3] [2020-8-02 | 28.2] [2020-8-09 | 26.7] [2020-8-16 | 24.1] [2020-8-30 | 23.2]
我希望附加的系列:注意缺少的 8 月 16 日
[2020-7-26 | 20.3] [2020-8-02 | 21.2] [2020-8-09 | 23.7] [2020-8-30 | 22.2]
有没有办法将这个系列转换成:
[2020-7-26 | 20.3] [2020-8-02 | 21.2] [2020-8-09 | 23.7] [2020-8-16 | 0.0] [2020-8-30 | 22.2]
为了能够形成这个数据框:
[2020-7-26 | 29.3 | 20.3] [2020-8-02 | 28.2 | 21.2] [2020-8-09 | 26.7 | 23.7] [2020-8-16 | 24.1 | 0.0] [2020-8-30 | 23.2 | 22.2]
提前致谢!
解决方案
如果我对您的理解正确,您只是想在日期时间索引上将两者结合在一起。让df
您成为具有更多索引的数据框,并ser
成为您缺少索引的系列。
如果df
是:
val
date
2019-08-01 1
2019-08-02 2
2019-08-03 3
并且ser
是:
date
2019-08-01 4
2019-08-03 5
应该很简单:
df.join(ser,how='left').fillna(0)
产生:
val val2
date
2019-08-01 1 4.0
2019-08-02 2 0.0
2019-08-03 3 5.0
因为左连接将用 填充右侧的任何缺失nans
,这fillna()
将用 0 估算。
确保您的系列有一个名称,否则连接不知道如何命名您的新列。您可以
ser.name = 'column_name'
在调用 join 之前进行设置,在我的例子中是'val2'
.
另外,如果您不明白我为什么要打电话how='left'
,我建议您花一些时间阅读左、右、外、内连接是什么,因为它不仅对 python 中的预处理而且对 sql 也是非常重要的。祝你好运!
推荐阅读
- sql - sql server 获取同一张表的最新日期
- c++ - 可变模板函数 - 放置基本案例的位置
- javascript - Bootstrap 4轮播布局问题
- ios - SWIFTUI - 尝试从 OneDrive 和 GoogleDrive 等云文件提供商导入文件时出现文件未找到错误
- python - 从 Pandas Dataframe 中选择一列中具有相同值但在另一列中仅缺失的行
- php - Laravel - Sqlite 内存测试不适用于 onDelete('cascade')
- dependency-injection - 关于@EJB 注入的简单 EJB HelloWorld 问题
- python - 仅当减法匹配时如何转换?
- r - 分层 cox 模型的 survfit
- neo4j - 可选匹配neo4j中的多个索引提示