我的数据名气是这样的:
val type
10 new
70 new
61 new
45 old
32 new
77 mid
11 mid对于"type“列中的值,如果value是新的,我想根据val列对其进行编辑。如果val中的值为=< 20,则必须为new-1;如果> 20且< 50,则必须为new-2;如果为>= 50,则必须为new-3。因此,期望的结果是:
val type
10 new-1
70 new-3
61 new-3
45 old
32 new-2
77 mid
11 mid如何做到这一点?
发布于 2021-11-01 07:59:22
我会使用pd.cut
>>> df['type'] = df['type'].where(df['type'].ne('new'), df['type'] + '-' + pd.cut(df['val'], [0, 20, 50, float('inf')], labels=[1, 2, 3]).astype(str))
>>> df
val type
0 10 new-1
1 70 new-3
2 61 new-3
3 45 old
4 32 new-2
5 77 mid
6 11 mid
>>> https://stackoverflow.com/questions/69794012
复制相似问题