基于时间戳差值与分钟数替换Pandas DataFrame列值为时间戳
解决方案
首先构造你的原始DataFrame(如果还没创建的话):
import pandas as pd data = {'2022-01-02 21:00:00+01:00': [5.53, 4.7, 9.15, 26.2, 26.54]} df = pd.DataFrame(data, index=[20, 15, 10, 5, 0]) df.index.name = 'minutes'
接下来执行以下步骤替换索引:
- 提取基准时间戳:把列名的字符串时间转为Pandas datetime对象
base_time = pd.to_datetime(df.columns[0])
- 转换索引为时间差:将原索引的分钟数值转为时间间隔类型
offset = pd.to_timedelta(df.index, unit='minutes')
- 计算新索引并替换:用基准时间减去对应时间差,替换原索引
df.index = base_time - offset
执行完后,你的DataFrame就会变成期望的格式:
minutes 2022-01-02 21:00:00+01:00 2022-01-02 20:40:00+01:00 5.53 2022-01-02 20:45:00+01:00 4.70 2022-01-02 20:50:00+01:00 9.15 2022-01-02 20:55:00+01:00 26.20 2022-01-02 21:00:00+01:00 26.54
内容的提问来源于stack exchange,提问作者A Newbie
相关产品推荐
相关产品推荐

