pandas - 如何重新采样(上采样)我的 Pandas 数据框?
问题描述
我有一个小的 Pandas DataFrame 我想重新采样,我希望你能帮助我:)
我不能给你看,因为它是机密的,但我可以向你描述一个更简单的版本。
它有 4 列:
-日期(YYYY-MM-DD 格式)
-国家
-数量
-频率
所以这就是我想做的:
根据行,频率可以是每年或每月如果恰好是每月,则无需执行任何操作。
但如果是一年,我想将其更改为 MONTHLY 并插入 11 个新行,以便在考虑的 12 行(现有行和 11 个新行)中,国家将保持不变(因此相同的国家名称重复 12 次),金额将是金额/12(也重复 12 次,你明白了),并且日期将在每一行增加 1 个月。
我真的希望有人可以帮助我!
提前致谢,
亚历克斯
编辑:
我已经使用将日期列更改为索引
df.set_index("日期",inplace=True)
但是,我真的不知道如何将重采样功能用于我的目的......
解决方案
首先确保您的数据框具有 type 的索引DateTimeIndex
。
然后使用该resample
函数对数据帧进行上采样(较高频率)或下采样(较低频率)。然后应用聚合器(例如sum
)来聚合新采样频率的值。
请参阅resample
此处的文档:https ://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html
推荐阅读
- node.js - MongoDB嵌套数组聚合正确
- spring-boot - 使用 JPA 的 Spring Boot Batch 动态多数据源
- netlogo - Netlogo:乌龟明显的古怪行为
- ios - SwiftUI - 如果 TabView 嵌套在 NavigationLink 中,TabView 内的视图会在一秒钟后跳转
- python - 如何概括导入脚本
- nlp - 为什么运行“python run_squad.py”不起作用?
- java - 将 yaml 配置映射到 java hashmap
- excel - Power Query 根据索引添加月份列
- reactjs - 带有反应构建的空白页面
- objective-c - 为什么我看不到 NStextView 的内容