Python 每小时插入15分钟的日期时间
我有一个数据框,有3列,其中第一列是datetime 看起来像这样Python 每小时插入15分钟的日期时间,python,pandas,datetime,Python,Pandas,Datetime,我有一个数据框,有3列,其中第一列是datetime 看起来像这样 Datetime Level1 Level2 2016-02-24 01:00 12 15 2016-02-24 02:00 14 13 2016-02-24 03:00 8 12 现在我想在每小时值之间添加15分钟间隔值。但是,Level1和Level2的值与前一个小时的值相同。应该是这样的: Datetime Level
Datetime Level1 Level2
2016-02-24 01:00 12 15
2016-02-24 02:00 14 13
2016-02-24 03:00 8 12
现在我想在每小时值之间添加15分钟间隔值。但是,Level1和Level2的值与前一个小时的值相同。应该是这样的:
Datetime Level1 Level2
2016-02-24 01:00 12 15
2016-02-24 01:15 12 15
2016-02-24 01:30 12 15
2016-02-24 01:45 12 15
2016-02-24 02:00 14 13
2016-02-24 02:15 14 13
2016-02-24 02:30 14 13
2016-02-24 02:45 14 13
2016-02-24 03:00 8 12
2016-02-24 03:15 8 12
2016-02-24 03:30 8 12
2016-02-24 03:45 8 12
我想不出一个合适的方法来做这件事 您可以创建原始数据帧的副本,其中将
Datetime
列每列增加15分钟,然后使用后跟获得最终结果:
from datetime import timedelta
import pandas as pd
df = pd.DataFrame(
data=[['2016-02-24 01:00', 12, 15],
['2016-02-24 02:00', 14, 13],
['2016-02-24 03:00', 8, 12]],
columns=['Datetime', 'Level1', 'Level2']
)
df['Datetime'] = pd.to_datetime(df['Datetime'])
intervals = [df]
while len(intervals) < 4:
new = intervals[-1].copy()
new['Datetime'] += timedelta(minutes=15)
intervals.append(new)
result = pd.concat(intervals).sort_values(by='Datetime')
从日期时间导入时间增量
作为pd进口熊猫
df=pd.DataFrame(
数据=['2016-02-24 01:00',12,15],
['2016-02-24 02:00', 14, 13],
['2016-02-24 03:00', 8, 12]],
列=['Datetime','Level1','Level2']
)
df['Datetime']=pd.to_Datetime(df['Datetime'])
间隔=[df]
而len(间隔)<4:
新建=间隔[-1]。复制()
新['Datetime']+=timedelta(分钟=15)
间隔。追加(新)
结果=pd.concat(interval).sort_值(按class='Datetime')
将datetime设置为索引(转换为datetime后),并使用asfreq方法和正向填充,用以前的值填充空值:
#thanks to @a_guest for the cleaned sample data
df = pd.DataFrame(
data=[['2016-02-24 01:00', 12, 15],
['2016-02-24 02:00', 14, 13],
['2016-02-24 03:00', 8, 12]],
columns=['Datetime', 'Level1', 'Level2']
)
df['Datetime'] = pd.to_datetime(df['Datetime'])
df = df.set_index('Datetime')
df.asfreq('15min',method='pad')
Level1 Level2
Datetime
2016-02-24 01:00:00 12 15
2016-02-24 01:15:00 12 15
2016-02-24 01:30:00 12 15
2016-02-24 01:45:00 12 15
2016-02-24 02:00:00 14 13
2016-02-24 02:15:00 14 13
2016-02-24 02:30:00 14 13
2016-02-24 02:45:00 14 13
2016-02-24 03:00:00 8 12
NB:你的问题是时间间隔为15分钟,你的最新时间是下午3点,而不是下午4点,这在你的数据中是共享的