我有一个数据帧如下:
Col1 0 A 1 B 3 D 4 A 5 A
我想创建一个列来计算相同值的2个出现之间的索引差异.我会得到:
Col1 Col2 0 A 0 1 B 0 3 D 0 4 A 4 5 A 1
对于我想要做的每个值,在这个例子中,B和D发生一次.
有什么建议 ?谢谢 !
如果将索引转换为Series,则可以像通常那样使用groupby-diff:
In [102]: df Out[102]: Col1 0 A 1 B 3 D 4 A 5 A 6 D In [103]: df["Col2"] = df.index.to_series().groupby(df.Col1).diff().fillna(0) In [104]: df Out[104]: Col1 Col2 0 A 0.0 1 B 0.0 3 D 0.0 4 A 4.0 5 A 1.0 6 D 3.0