python - 如何对数据帧重新采样并包括开始和结束时间?

标签 python pandas numpy

因此,我正在处理刻度数据,并尝试将数据帧重新采样为分钟柱,但是当调用重新采样时,时间序列开始并结束刻度存在的第一个实例。我如何重新采样这些数据,以便可以将第一次和最后一次指定为特定的开始和结束时间?

此处编辑一些示例数据。

df = pd.DataFrame(data={'Code': pd.Series(['A', 'A', 'B', 'B'], dtype='str'), 'Timestamp': pd.Series([1608627600073933, 1698929600124359, 1608627600073933, 1608929600124359], dtype='datetime64[ns]'),
'Val':[5, 6, 5, 6]})
df.set_index(['Timestamp'], inplace=True)
df.groupby('Code').resample('1T').agg('sum')

哪些输出

                     Val
Timestamp
1970-01-19 14:50:00    5
1970-01-19 14:51:00    0
1970-01-19 14:52:00    0
1970-01-19 14:53:00    0
1970-01-19 14:54:00    0
1970-01-19 14:55:00    6

但我想要一个输出数据帧,其中包含例如特定小时的每一分钟的时间戳。

最佳答案

您可以手动添加开始和结束日期时间:

#removed minutes and seconds
df1 = df.rename(lambda x: x.floor('H'))
#removed duplicated DatetimeIndex - output empty df
df1 = df1.loc[~df1.index.duplicated(), []]
#join together
df1 = pd.concat([df, df1, df1.rename(lambda x: x + pd.Timedelta('00:59:00'))])
print (df1)
                              Code  Val
Timestamp                              
1970-01-19 14:50:27.600073933    A  5.0
1970-01-19 14:55:29.600124359    A  6.0
1970-01-19 14:00:00.000000000  NaN  NaN
1970-01-19 14:59:00.000000000  NaN  NaN

df2 = df1.resample('1T').agg('sum')
print (df2)

对于每天的增值:

df1 = df.rename(lambda x: x.floor('D'))
df1 = df1.loc[~df1.index.duplicated(), []]
df1 = pd.concat([df, df1, df1.rename(lambda x: x + pd.Timedelta('23:59:00'))])
print (df1)
                              Code  Val
Timestamp                              
1970-01-19 14:50:27.600073933    A  5.0
1970-01-19 14:55:29.600124359    A  6.0
1970-01-19 00:00:00.000000000  NaN  NaN
1970-01-19 23:59:00.000000000  NaN  NaN

df2 = df1.resample('1T').agg('sum')
print (df2)

关于python - 如何对数据帧重新采样并包括开始和结束时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70859529/

相关文章:

python - 如何在 Python 中格式化我对 Spotify Web API 的 GET 请求?

python - 如何使用python包装器在opencv中正确使用网络摄像头?

python 3.x : Subtract Same Index from Sequential Lines

python - 如何有效访问 Pandas 中满足条件的第一个和最后一个出现的索引

python - 数据框分层索引加速

python - Dataframes 列表,如果行包含特殊字符串,则删除 Dataframe 列(列具有不同的名称)

python - 仅在特定索引处添加 pandas 列的值

python - 将 numpy 多项式拟合到噪声数据

python - 将 Matlab 代码翻译为 Python

python - 为什么复制 >= 16 GB 的 Numpy 数组会将其所有元素设置为 0?