我正在查询返回特定列的表,并且基于这些列值,我需要通过检查条件来更新另一列。
如何直接在sqlalchemy查询中应用qcut
?
可能吗?
我的四分位数阈值是:
2 -- A(updatable value)
4 -- B
5 -- C
10 --D
我正在这样的查询
查询=选择([example_table.c.valueA,example_table.c.valueB])
它返回:
valueA valueB
5 3
6 2
1 2
3 10
我希望基于值A的输出添加具有四分位数值的另一个字段:
valueA valueB QuartileValueForA
5 3 C
6 2 D
1 2 A
3 10 B
是否可以通过
qcut
? 最佳答案
您可以使用pd.cut
(而不是四分位数qcut
)来执行此操作:
In [11]: pd.cut(df['valueA'], [-np.inf, 2, 4, 5, 10, np.inf], labels=list("ABCDE"))
Out[11]:
0 C
1 D
2 A
3 B
Name: valueA, dtype: category
Categories (5, object): [A < B < C < D < E]