我想根据我的数据框中每小时的信息来命名一天中的时段
为此,我尝试以下方法:
day_period = []
for index,row in df.iterrows():
hour_series = row["hour"]
# Morning = 04:00-10:00
#if hour_series >= 4 and hour_series < 10:
if 4 >= hour_series < 10:
day_period_str = "Morning"
day_period.append(day_period_str)
# Day = 10:00-16:00
#if hour_series >= 10 and hour_series < 16:
if 10 >= hour_series < 16:
day_period_str = "Day"
day_period.append(day_period_str)
# Evening = 16:00-22:00
#if hour_series >= 16 and hour_series < 22:
if 16 >= hour_series < 22:
day_period_str = "Evening"
day_period.append(day_period_str)
# Night = 22:00-04:00
#if hour_series >= 22 and hour_series < 4:
if 22 >= hour_series < 4:
day_period_str = "Night"
day_period.append(day_period_str)
但是,当再次检查我的day_时段列表的长度是否与我的数据帧(df)的长度相同时。。。他们不一样,也不应该。我看不出这个错误。如何修复代码
len(day_period)
>21882
len(df)
>25696
以下是数据预览:
timestamp latitude longitude hour weekday
0 2021-06-09 08:12:18.000 57.728867 11.949463 8 Wednesday
1 2021-06-09 08:12:18.000 57.728954 11.949368 8 Wednesday
2 2021-06-09 08:12:18.587 57.728867 11.949463 8 Wednesday
3 2021-06-09 08:12:18.716 57.728954 11.949368 8 Wednesday
4 2021-06-09 08:12:33.000 57.728905 11.949309 8 Wednesday
我的最终目标是将这个列表附加到数据帧中
在使用} :
pandas
时,应使用^{输入:
输出:
经过一点测试后,问题似乎是22-4块,将它们分开可以解决这个问题
另外,我将
>=
更改为<=
使用此代码,它可以按预期工作:
您的小于/大于不正确:
要查找所需的4到10个字符,请执行以下操作:
相关问题 更多 >
编程相关推荐