python - 将每日值合并到日内 DataFrame

标签 python datetime pandas dataframe

假设我有两个 DataFrames:intraday 每分钟一行,daily 每天一行。

如何添加一列 intraday['some_val'],其中 some_val 取自 daily['some_val']intraday.index 值(日期部分)是否等于 daily.index 值(日期部分)?

最佳答案

给定以下设置,

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])

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

daily['date'] = daily.index.date
intraday['date'] = intraday.index.date    
daily.merge(intraday)
            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 时有效。

关于python - 将每日值合并到日内 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271258/

相关文章:

android datepickerDialog 不应该接受 future 的日期

c# - 将日期时间转换为 double

Python 破折号 : loading pandas dataframes into data table

python - pandas read_csv 中的日期和时间

python - 拓展新式类

Python tcp 发送接收函数

c# - .net 特定于文化的 12/24 小时格式

python - ElasticSearch切片滚动限制(Python)

python - 在Python中用数据帧中的平均值替换 '?'时出错

python - 使用 for 循环在数据框中添加值