这是我的 Dataframe :
df = pd.DataFrame({'a': range(100, 111)})
我想在这个数据框中添加一列,我想要的输出如下所示:
a b
0 100 NaN
1 101 NaN
2 102 NaN
3 103 1
4 104 1
5 105 1
6 106 2
7 107 2
8 108 2
9 109 3
10 110 3
我有一个值,在本例中是3。如果a
中的值在103和106之间,我希望b
列中的值为1。如果b
中的值在106和109之间,我希望b
列中的值为2。我希望像示例一样具有包容性。我尝试了几种解决方案。其中一种是pd.cut
,但我不知道如何实现。这是我的一次尝试:
df['b'] = pd.cut(df.a, [100, 103, 106, 109], include_lowest=True)
但由于我不知道其他样本中有多少个bin,因此无法使用此解决方案。
2条答案
按热度按时间xqkwcwgp1#
一个选项不使用
cut
,但使用简单算法(楼层划分):使用
cut
时:输出:
rur96b6h2#
可以动态创建组,默认组从
0
开始添加参数labels=False
,默认组从1
开始添加参数1
: