gpt4 book ai didi

python - pandas.DataFrame.loc ,在新列中标记数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:48:05 25 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

     ranking
1 4.33
2 1.34
3 3.76
..

我想创建这个:

     ranking  label
1 4.33 2
2 1.34 0
3 3.76 1
..

这样一个排名< 3.5导致标签 0 ,排名介于3.5之间和 4.25导致标签 1 , 和排名 > 4.25导致标签 2 .

这是我到目前为止写的代码:

df = pd.read_csv('./data/Step7_final.csv', index_col=False, encoding="ISO-8859-1")  
df['label'] = df.ranking.where(df.ranking > 3.4999, 0)
df.loc[df.label > 3.4999 and < 4.2499, 'label'] = 1
df.loc[df.label > 4.2499, 'label'] = 2

我将标签 1 分配给 3.5 到 4.25 之间的排名值的第三行不起作用...我怎样才能让它起作用?

最佳答案

您需要使用按位 & 而不是 and。条件必须按 parantheses 分组.

但是,更好的方法是使用 pd.cut :

pd.cut(df['ranking'], [-np.inf, 3.5, 4.25, np.inf], labels=[0, 1, 2])
Out[55]:
0 2
1 0
2 1
Name: ranking, dtype: category
Categories (3, int64): [0 < 1 < 2]

关于python - pandas.DataFrame.loc ,在新列中标记数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38263994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com