Python 3.x 熊猫按行分组

Python 3.x 熊猫按行分组,python-3.x,pandas,Python 3.x,Pandas,我有一个这样的数据帧 import pandas as pd raw_data = {'ID':['101','101','101','101','101','102','102','103'], 'Week':['W01','W02','W03','W07','W08','W01','W02','W01'], 'Orders':[15,15,10,15,15,5,10,10]} df2 = pd.DataFrame(raw_data, colu

我有一个这样的数据帧

import pandas as pd
raw_data = {'ID':['101','101','101','101','101','102','102','103'],
            'Week':['W01','W02','W03','W07','W08','W01','W02','W01'],
            'Orders':[15,15,10,15,15,5,10,10]}

df2 = pd.DataFrame(raw_data, columns = ['ID','Week','Orders'])
我想要在组中按行百分比

我怎样才能做到这一点

import pandas as pd
raw_data = {'ID':['101','101','101','101','101','102','102','103'],
            'Week':['W01','W02','W03','W07','W08','W01','W02','W01'],
            'Orders':[15,15,10,15,15,5,10,10]}

df2 = pd.DataFrame(raw_data, columns = ['ID','Week','Orders'])

使用
pct\u更改

df2.groupby('ID').Orders.pct_change()).add(1).fillna(0)
我发现它在我的熊猫版pct_中的变化不能用groupby对象来做,所以我们需要用它来做

df2['New']=sum(l,[])
df2.New=(df2.New+1).fillna(0)
df2
Out[606]: 
    ID Week  Orders       New
0  101  W01      15  0.000000
1  101  W02      15  1.000000
2  101  W03      10  0.666667
3  101  W07      15  1.500000
4  101  W08      15  1.000000
5  102  W01       5  0.000000
6  102  W02      10  2.000000
7  103  W01      10  0.000000

执行车窗操作,将值移动1个位置

df2['prev']=df2.groupby(by='ID').Orders.shift(1).fillna(0)
使用apply()单独计算更改百分比

我不确定窗口中是否有任何默认的pd.pct_change()

    ID  Week    Orders  prev    pct
0   101 W01 15  0.0 0.000000
1   101 W02 15  15.0    0.000000
2   101 W03 10  15.0    -0.333333
3   101 W07 15  10.0    0.500000
4   101 W08 15  15.0    0.000000
5   102 W01 5   0.0 0.000000
6   102 W02 10  5.0 1.000000
7   103 W01 10  0.0 0.000000

@anky_91是有线的,我只是在我的工作环境中运行,它不工作。。但是在我的测试环境中工作。