我有一个包含日期、时间、距离列的数据框。我想按每天 2 小时间隔的距离列进行分组。我已经检查了堆栈溢出中提出的问题,但它没有给我所需的输出。
我粘贴的示例代码来自堆栈溢出,但输出不符合预期。
uniquedate = np.unique(df2["Date"])
for i in uniquedate:
data_new1 = df2[df2['Date']==i]
data_new2 = data_new1[['Real_time', 'Distance_km']].copy()
data_new2.index = pd.to_timedelta(data_new2.index.astype(str))
data_new2 = data_new2.resample('2H').sum()
print(data_new2)
Distance_km
00:00:00.000000 276.850844
Distance_km
00:00:00.000000 193.115217
我得到了这个输出,但这不是必需的
最佳答案
试试这个:
data_new2.groupby([data_new2.index,pd.TimeGrouper(freq='2H')]).sum()
请避免复制粘贴代码而导致堆栈溢出。通常,该解决方案不足以满足您的用例。而且它很懒。
编辑 将索引设置为日期时间或时间戳 a,然后进行简单的重新采样应该适合您。
import pandas as pd
idx = pd.date_range('2018-01-01', periods=5, freq='H')
ts = pd.Series(range(len(idx)), index=idx)
ts = ts.resample('2H').sum()
关于python - 对列值进行分组 2 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58128144/