我尝试根据 Rk
列中已存在的值将 Year
列添加到我的 DataFrame 中。我尝试使用下面的代码,但它会自动将所有值设置为 0
。
df['Year'] = np.where(df['Rk'] <= 540, '2017/2018', 0)
df['Year'] = np.where((df['Rk'] >= 541) & (df['Rk'] <= 1135), '2016/2017', 0)
df['Year'] = np.where((df['Rk'] >= 1136) & (df['Rk'] <= 1713), '2016/2017', 0)
最佳答案
使用cut
与指定垃圾箱:
df = pd.DataFrame({
'Rk': [10, 540,541,1135,1136,1713,1714,2000],
})
labs = ['2017/2018','2016/2017','2015/2016', '0']
df['Year'] = pd.cut(df['Rk'], bins=[-np.inf,540, 1135, 1713, np.inf], labels=labs)
print (df)
Rk Year
0 10 2017/2018
1 540 2017/2018
2 541 2016/2017
3 1135 2016/2017
4 1136 2015/2016
5 1713 2015/2016
6 1714 0
7 2000 0
关于python - 根据另一列上的多个条件在 Pandas 中添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52721283/