Dataframe 价值指数长度

Dataframe 价值指数长度,dataframe,Dataframe,我有一个数据框,如下所示: Col1 0 A 1 B 3 D 4 A 5 A 我想创建一个列来计算相同值的两次出现之间的索引差。我会得到: Col1 Col2 0 A 0 1 B 0 3 D 0 4 A 4 5 A 1 对于我想这样做的每个值,在本例中B和D出现一次 有什么建议吗?

我有一个数据框,如下所示:

      Col1
0      A
1      B
3      D
4      A
5      A
我想创建一个列来计算相同值的两次出现之间的索引差。我会得到:

      Col1      Col2
0      A         0
1      B         0
3      D         0
4      A         4
5      A         1
对于我想这样做的每个值,在本例中B和D出现一次


有什么建议吗?谢谢

如果将索引转换为一个系列,则可以像通常一样使用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

如果将索引转换为系列,则可以像通常一样使用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