首页 > 解决方案 > 在熊猫数据框中创建新列时出错

问题描述

在此处输入图像描述

尝试使用 np.select 创建一个新列以将不同的时间范围分类为类别。但是,python 会抛出一个错误,说形状不匹配。我不确定如何纠正它。

标签: pandasdataframe

解决方案


对于您的逻辑,使用datetimehour属性很简单

import numpy as np
s = pd.Series(pd.date_range("1-Apr-2021", "now", freq="4H"), name="start_date")
(s.to_frame()
 .join(pd.Series(np.select([s.dt.hour.between(1,6),
                            s.dt.hour.between(7,12)],
                           [1,2],0), name="cat"))
 .head(8)
)
开始日期
0 2021-04-01 00:00:00 0
1 2021-04-01 04:00:00 1
2 2021-04-01 08:00:00 2
3 2021-04-01 12:00:00 2
4 2021-04-01 16:00:00 0
5 2021-04-01 20:00:00 0
6 2021-04-02 00:00:00 0
7 2021-04-02 04:00:00 1

推荐阅读