将日值合并到日内数据帧中

2024-10-05 13:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个DataFramesintraday每分钟有一行,daily每天有一行。在

如何添加一列intraday['some_val'],其中some_val取自daily['some_val']行,其中intraday.index值(日期组件)等于daily.index值(日期组件)?在


Tags: index组件valsomedailydataframesintraday
1条回答
网友
1楼 · 发布于 2024-10-05 13:15:38

给定以下设置

intraday = pd.DataFrame(index=pd.date_range('2016-01-01', '2016-01-07', freq='T'))
daily = pd.DataFrame(index=pd.date_range('2016-01-01', '2016-01-07', freq='D'))
daily['some_val'] = np.arange(daily.shape[0])

您可以从两个索引的日期组件创建一个列,并在该列上合并

^{pr2}$
            date  some_val
0     2016-01-01         0
1     2016-01-01         0
2     2016-01-01         0
3     2016-01-01         0
4     2016-01-01         0
...          ...       ...
8636  2016-01-06         5
8637  2016-01-06         5
8638  2016-01-06         5
8639  2016-01-06         5
8640  2016-01-07         6

或者,您可以利用自动索引对齐,并使用fillna。在

intraday['some_val'] = daily['some_val']
intraday.fillna(method='ffill', downcast='infer')
                     some_val
2016-01-01 00:00:00         0
2016-01-01 00:01:00         0
2016-01-01 00:02:00         0
2016-01-01 00:03:00         0
2016-01-01 00:04:00         0
...                       ...
2016-01-06 23:56:00         5
2016-01-06 23:57:00         5
2016-01-06 23:58:00         5
2016-01-06 23:59:00         5
2016-01-07 00:00:00         6

注意,只有当daily索引的时间分量是00:00时,这才有效。在

相关问题 更多 >

    热门问题