我有以下形式的数据集-
date code A B C
20-02-01 box1 1 2 1
20-02-02 box1 2 2 1
20-02-03 box1 3 2 1
20-02-01 box2 2 1 1
20-02-04 box3 4 2 1
20-02-05 box3 5 2 1
20-02-06 box3 7 2 1
A,B,C列代表每个框在第一列中给出的日期上的累积值。现在,我想创建另一行,可以找到每天增加一个python中WRT每个盒子。例如。最终应该是-
date code A B C D
20-02-01 box1 1 2 1 1
20-02-02 box1 2 2 1 1
20-02-03 box1 3 2 1 1
20-02-01 box2 2 1 1 2
20-02-04 box3 4 2 1 4
20-02-05 box3 5 2 1 1
20-02-06 box3 7 2 1 2
如何根据两个索引(日期,代码)找到A中的差异?
您可以使用DataFrame.groupby
分组数据帧通过code
,然后使用.transform
上栏A
,你可以找到在列每日增加A
使用功能的组合.shift
,.fillna
与.abs
:
df['D'] = (
df.groupby(['code'])['A']
.transform(lambda s: s.sub(s.shift().fillna(0)).abs())
)
结果:
# print(df)
date code A B C D
0 20-02-01 box1 1 2 1 1
1 20-02-02 box1 2 2 1 1
2 20-02-03 box1 3 2 1 1
3 20-02-01 box2 2 1 1 2
4 20-02-04 box3 4 2 1 4
5 20-02-05 box3 5 2 1 1
6 20-02-06 box3 7 2 1 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句