python - 根据另一列上的多个条件在 Pandas 中添加一列

标签 python pandas numpy

我尝试根据 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/

相关文章:

python - Pandas Dataframe,当某些行可能有超过 1 ","时,如何将一列分成两列 ","

python - Pandas:.loc 未将一个数据帧的行分配给另一个数据帧切片的一行

python - Pandas - 在过滤后的数据帧上应用聚合

Python 输入验证大于零的整数

python - 我可以在 Linux 上打开命名管道以在 Python 中进行非阻塞写入吗?

python - 将列表列表导入列表数组中的文件

python - 按列解压 NumPy 数组

python - 消除 Matplotlib/Basemap pcolor 图中的白边

python numpy机器epsilon

python - 我如何使用 Keras 获得可重现的结果?