首页 > 解决方案 > 如何找出每个唯一键的趋势。数据框

问题描述

我有一个带有 2 列的 DataFrame

科尔A| ColB
2
12
D 15
一个 20
一个 40
一个 60
C 60
C 55
C 70
C 45
大号 45
大号 23
大号 10
大号 5

结果/输出将是

向上
一个向上
C平
L 下
其中 UP 是所有相关权重相加的结果:每个键的每个连续权重必须小于前一个权重。您必须拥有的 UP 示例

标签: pythonpandas

解决方案


这是一个简单的技术,可能不适合所有情况,即:

def sum_t(x):
    # Compare the value with previous value
    m = x > x.shift() 
    # If all of them are increasing then return Up
    if m.sum() == len(m)-1:
        return 'UP'
    # if all of them are decreasing then return Down
    elif m.sum() == 0:
        return 'DOWN'
    # else return flat
    else:
        return 'FLAT'

df.groupby('ColA')['ColB'].apply(sum_t)

输出:

ColA
A      UP
C    FLAT
D      UP
L    DOWN
Name: ColB, dtype: object

推荐阅读