我有一个数据帧。我想添加一列来计算两个相邻行之间的差值(如果序列不同,则没关系)。
例如,如果在行[A]中是12,22,5,7;在行B中是22,7,3,6,那么数字是2,等等。因为在行[a]和行[b]中我们有相同的22和7(尽管序列不同)。在第b行,我们有两个新的数字3,6。所以我们最后在行“b”中添加一个数字,记录行a和行b之间的差异。
df = pd.DataFrame({'X': [22, 7, 43, 44, 56,67,7,38,29,130],'Y': [5,3,330,140,250,10,207,320,420,50],'Z': [7,6,136,144,312,10,82,63,42,12],'T':[12, 22, 4, 424, 256,167,27,38,229,30]},index=list('ABCDEFGHIJ'))
感谢。
答案 0 :(得分:1)
John Galt在他的(现在,不幸删除的)答案中,set
操作正确。
此外,重复会计将涉及:
s = df.apply(set, 1)
df['diffs'] = s.diff().fillna('').str.len() + (4 - s.str.len())
df
T X Y Z diffs
A 12 22 5 7 0
B 22 7 3 6 2
C 4 43 330 136 4
D 424 44 140 144 4
E 256 56 250 312 4
F 167 67 10 10 4
G 27 7 207 82 4
H 38 38 320 63 4
I 229 29 420 42 4
J 30 130 50 12 4