【发布时间】:2022-11-14 19:56:15
【问题描述】:
当列 df['values'] 的值小于 x 时,我想用数字 1-52 填充列 df['category']
所以这里的值是天数,类别是周数,但不是基于日期而是天数的累积,每 7 天是一个新的一周。
周 = 1-52 的值范围
范围 = 7 的倍数 所以 7, 14, 21, ... , 371
“类别”范围为 1 - 52
“值”范围为 1 - 400
如果 df['values'] < 7,则 df['category'] = 1
如果 df['values'] < 14,则 df['category'] = 2
如果 df['values'] < 21,则 df['category'] = 3
……
否则 df['类别'] = 52任何大于 371 天的 df['values'] 都可以认为是 df['category'] = 52
我怎么写这个?
我试过了:
week = list(range(1,53)) range = list(range(7,372,7)) for x in n: df.loc[(df['values'] < x), week]并且
df['category'] = np.select((df['values'] < x), week)我希望 df 看起来像这样:
values category 20 3 52 8
【问题讨论】:
标签: python pandas dataframe numpy conditional-statements