python - 基于 DatetimeIndex 变量对 Pandas 数据框进行重采样
问题描述
我有一个带有日期索引的数据框:
Symbol Shares Price Commission
Date
2017-12-06 BNP 0 0 10.0
2018-10-09 BNP 0 0 10.0
和一个单独的 DatetimeIndex 变量:
DatetimeIndex(['2014-02-14', '2014-02-15', '2014-02-16', '2014-02-17',
...
'2020-04-11', '2020-04-12'],
dtype='datetime64[ns]', length=2250, freq='D')
我正在尝试根据该变量重新采样数据框。有什么办法吗?我知道,pandas.DataFrame.resample
但它似乎只能用于“定期”重采样(即每天、每周等)
我是 python 的新手,从 MATLAB 迁移。
谢谢!
解决方案
这取决于你想怎么做,请检查: http: //pandas-docs.github.io/pandas-docs-travis/user_guide/timeseries.html
但是,Series 和 DataFrame 也可以直接支持时间组件作为数据本身。
我只举一些例子:
rng = pd.date_range('1/1/2012', periods=100, freq='S')
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
ts.resample('W-MON')
idx = pd.date_range('2018-01-01', periods=5, freq='H')
ts = pd.Series(range(len(idx)), index=idx)
Output:
2018-01-01 00:00:00 0
2018-01-01 01:00:00 1
2018-01-01 02:00:00 2
2018-01-01 03:00:00 3
2018-01-01 04:00:00 4
pd.Series(range(3), index=pd.date_range('2000', freq='D', periods=3))
Output:
2000-01-01 0
2000-01-02 1
2000-01-03 2
pd.Series(pd.period_range('1/1/2011', freq='M', periods=3))
Output:
0 2000-01-01
1 2000-01-02
2 2000-01-03
推荐阅读
- python - 动态透视表的有效方法
- memory - JNI API DestroyJavaVM 后 JVM 使用的空闲内存
- c# - 当我尝试使用 git push origin 显示它时,处理标准输出在 c# 中不起作用
- c - 我无法使用链表打印多项式表达式
- javascript - 使我的函数更可重用的提示
- sql-server - SQL 登录已创建但未映射 - 用户已存在 - 之间是否有任何联系?
- ios - 如何快速获取集合视图的当前索引路径
- pytorch - 从列表而不是文件创建 SequenceTaggingDataset
- python - OpenCv错误无法通过视频捕获打开相机
- javascript - 如何使用 Firebase 上传多个文件?