Python 3.x 如何在python中使用非连续数字更改列值?

Python 3.x 如何在python中使用非连续数字更改列值?,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我有一个数据帧。我想更改“标签”列中的值。 值必须介于1到7之间,但不得使用#4。而且每一个都必须有2个 我已经设法做到了。但我的方法只对小数据帧有用。 那么,我怎样才能使它自动用于更大的数据帧呢 #Original dataframe df = pd.DataFrame(np.random.rand(12, 5)) label=np.array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]) df['label'] = label df #My attempt :

我有一个数据帧。我想更改“标签”列中的值。 值必须介于1到7之间,但不得使用#4。而且每一个都必须有2个

我已经设法做到了。但我的方法只对小数据帧有用。 那么,我怎样才能使它自动用于更大的数据帧呢

#Original dataframe
df = pd.DataFrame(np.random.rand(12, 5))
label=np.array([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3])
df['label'] = label
df

#My attempt :)
df['label'] = [1, 1, 2, 2, 3, 3, 5, 5, 6, 6, 7, 7]
df
原始数据帧

预期的数据帧(#4缺失!!!)


使用楼层划分并添加>=4

label = np.arange(len(df)) // 2 + 1
df['label'] = label + (label >= 4)

df

对于较长的数据集,是否也要跳过8、12、16等等?不。只有4个。