如何填充pandas中日期的时间列缺失的时间戳

2024-10-02 02:25:47 发布

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

我有一个时间序列数据如下:

print(df)

    ric     datel       timel        val
0   xyz     2017-01-01  09:00:00     2
1   xyz     2017-01-01  09:04:00     5
2   xyz     2017-01-01  09:37:00     6

现在我必须填充丢失的时间戳,直到09:45:00。在

预期产量:

^{pr2}$

我的尝试

df1=df.resample("1 min", on ='datel').first()

其输出为:

              ric   datel       timel     val
datel                   
2017-01-01  xyz     2017-01-01  09:00:00    2

也尝试过使用pd.date_range,但它主要用于datetime列。 我有两个不同的列日期和时间。有没有办法不把date和column合并到datetime中来实现这一点?在


Tags: 数据dfdatetimedate时间序列valdf1
2条回答

在生成带有日期范围的日期之后,您可以使用类似于下面的函数来拆分它。在

返回值可以输入df

从日期时间导入日期时间

def split_datetime(date_with_time):
    """
    This function will return date and time from datetime input
    """
    date_with_time = date_with_time.split(' ')
    date = date_with_time[0]
    time = date_with_time[1].split('.')[0]
    return date, time

#Eg:                   
date, time = split_datetime(str(datetime.now()))

主要思想是由^{}创建的time使用{a1}:

df['timel'] = pd.to_datetime(df['timel']).dt.time
start = pd.to_datetime(str(df['timel'].min()))
end = pd.to_datetime('09:45:00')
dates = pd.date_range(start=start, end=end, freq='1Min').time
#print (dates)

df = df.set_index('timel').reindex(dates).reset_index().reindex(columns=df.columns)
cols = df.columns.difference(['val'])
df[cols] = df[cols].ffill()
print (df.head())
   ric       datel     timel  val
0  xyz  2017-01-01  09:00:00  2.0
1  xyz  2017-01-01  09:01:00  NaN
2  xyz  2017-01-01  09:02:00  NaN
3  xyz  2017-01-01  09:03:00  NaN
4  xyz  2017-01-01  09:04:00  5.0

resample相似的溶液:

^{pr2}$

相关问题 更多 >

    热门问题