如何根据熊猫的时间范围用数据填充新列

问题描述 投票:0回答:2
Time_duration = df['period']
print (Time_duration)

0        23:59:56
1        23:59:56
2        23:59:55
3        23:59:53
4        23:59:52
           ...
74187    00:00:18
74188    00:00:09
74189    00:00:08
74190    00:00:03
74191    00:00:02

然后我如何在此添加新列,在其中我可以指定每个小时分组的单元格。例如,在00:00:00到00:59:59内的所有交易都以1填充,在01:00:00到01:59:59内的交易以2填充,依此类推直到23:00 :00到23:59:59以填充24。

0        23:59:56        24
1        23:59:56        24
2        23:59:55        24
3        23:59:53        24
4        23:59:52        24
           ...
74187    00:00:18         1
74188    00:00:09         1
74189    00:00:08         1
74190    00:00:03         1
74191    00:00:02         1
python python-3.x pandas numpy datetime
2个回答
0
投票
import datetime as dt

def hr_rt(t_str=str):
    time = dt.datetime.strptime(t_str, "%H:%M:%S")
    return time.hour + 1
df3['hr'] = df3.time.apply(hr_rt)


 sr_no      time  hr
0      0  23:59:56  24
1      1  23:59:56  24
2      2  23:59:55  24
3      3  23:59:53  24
4      4  23:59:52  24

我想这应该有所帮助


0
投票

确保列为Timedelta,然后使用整数除以一小时。

#df['period'] = pd.to_timedelta(df['period'])

df['hour'] = (df['period'] // pd.Timedelta(hours=1)) + 1

    period  hour
0 23:59:56    24
1 23:59:56    24
2 23:59:55    24
3 23:59:53    24
4 23:59:52    24
5 00:00:18     1
6 00:00:09     1
7 00:00:08     1
8 00:00:03     1
9 00:00:02     1
© www.soinside.com 2019 - 2024. All rights reserved.