我正在查询返回特定列的表,并且基于这些列值,我需要通过检查条件来更新另一列。
如何直接在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]

07-27 19:30