我有一个 Dataframe ,例如
Names Values
A 0.20
A 1.30
A 1.2
B 0.30
B 0.40
C 1.2
D 0.70
E 0.12
E 1.3
F 0.90
F 0.78
F 0.88
而我想给一个New_col
加一个数:
1
,其中对于每个Names
,至少有一个Values > 0.75
和一个Values < 0.75
- 对于每个
Names
,0
仅具有Values > 0.75
- 每个
Names
的2
仅具有Values < 0.75
然后我应该得到:
Names Values New_col
A 0.20 1
A 1.30 1
A 1.2 1
B 0.30 2
B 0.40 2
C 1.2 0
D 0.70 2
E 0.12 1
E 1.3 1
F 0.90 2
F 0.78 2
F 0.88 2
3条答案
按热度按时间sulc1iza1#
首先按条件测试比较阈值
0.75
,如果匹配至少一个值,则获取名称,再次比较Names
的成员资格,最后传递到numpy.select
:如果每个名称仅需要
0.75
值的另一个输出,请用途:第一次
e5njpo682#
输出量:
关于您的问题,“F”Nnames列的值应为0而不是2
1mrurvl13#
我有点晚了,但你可以使用
groupby
方法:以下是完整代码:
输出: