如果有数字范围

If with number range

我和 python 一起工作。 我正在尝试创建一列 1 和 0,你知道一年中的那个时期。

selected['Period']=np.zeros(len(selected.index))
for i in selected['Week']:
    if (25<=i<=47):
        selected['Period']=0
    elif (48<=i>=24):
        selected['Period']=1

周列具有从 x.week 函数(从日期时间)创建的年份 (int) 的周值 我试图扩展条件,尝试不同的形式,但它只需要零值,我看不出问题所在。 谢谢!

我的想法是拥有一个包含二进制值的列,并使用函数 select 一年中的时间段,或 [25,47] 时间段,或 [48,24]

更清楚:[0,24] -> 1 ; [25,47] -> 0 ; [48,52] -> 1.

编辑: data frame for the loop

output of a part of the data frame

使用简单的 else 怎么样?

selected['Period'] = np.zeros(len(selected.index))
for i in selected['Week']:
    if 25 <=i <= 47:
        selected['Period'] = 0
    else:
        selected['Period'] = 1
selected['Period'] = np.zeros(len(selected.index))
for i in selected['Week']:
    if 0 <=i <= 24:
        selected['Period'] = 1
    elif 25 <=i <= 47:
        selected['Period'] = 0
    elif 48 <=i <= 52:
        selected['Period'] = 1

在评论中讨论了一段时间后,我认为这就是您想要的。