TTa*_*Taa 4 python range conditional-statements dataframe pandas
我有一个名为'df'的数据框,我想用一个数据框中的列范围内的值替换另一列中的相应值.
6 <=年龄<11然后1
11 <=年龄<16然后2
16 <=年龄<21然后3
21岁<=年龄4岁
age
86508 12.0
86509 6.0
86510 7.0
86511 8.0
86512 10.0
86513 15.0
86514 15.0
86515 16.0
86516 20.0
86517 23.0
86518 23.0
86519 7.0
86520 18.0
Run Code Online (Sandbox Code Playgroud)结果是
age stage
86508 12.0 2
86509 6.0 1
86510 7.0 1
86511 8.0 1
86512 10.0 1
86513 15.0 2
86514 15.0 2
86515 16.0 2
86516 20.0 3
86517 23.0 4
86518 23.0 4
86519 7.0 1
86520 18.0 3
Run Code Online (Sandbox Code Playgroud)
谢谢.
使用pd.cut():
In [37]: df['stage'] = pd.cut(df.age, bins=[0,11,16,21,300], labels=[1,2,3,4])
In [38]: df
Out[38]:
age stage
86508 12.0 2
86509 6.0 1
86510 7.0 1
86511 8.0 1
86512 10.0 1
86513 15.0 2
86514 15.0 2
86515 16.0 2
86516 20.0 3
86517 23.0 4
86518 23.0 4
86519 7.0 1
86520 18.0 3
Run Code Online (Sandbox Code Playgroud)
In [39]: df['stage'] = pd.cut(df.age, bins=[0, 11, 16, 21, np.inf], labels=False, right=True) + 1
In [40]: df
Out[40]:
age stage
86508 12.0 2
86509 6.0 1
86510 7.0 1
86511 8.0 1
86512 10.0 1
86513 15.0 2
86514 15.0 2
86515 16.0 2
86516 20.0 3
86517 23.0 4
86518 23.0 4
86519 7.0 1
86520 18.0 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2386 次 |
| 最近记录: |