繁体   English   中英

在 Python Pandas 中创建重复的 int 子索引

[英]Create repeating int sub-index in Python Pandas

抱歉,这里有一个菜鸟问题,我正在尝试创建多个索引数据框,但是第一个值可能会重复,但我需要第二个值以与第一个值不同的值重新启动。

例如:

idx1    idx2    data
0       0        ...
0       1
0       2
1       0
1       1
1       2
2       0
2       1
...     ...

此外,我从 dataframe 获取 idx1 并创建 idx2 以供将来合并,所以我不知道 idx 在更改为下一个数字之前重复了多少次。 对于不同的 dataframe,它可以重复 2 次或 8 次:

idx1    idx2    data
0       0        ...
0       1
0       2
0       3
1       0
1       1
1       2
1       3
2       0
2       1
...     ...

有人知道我如何创建这种子索引(idx2)吗?

您可以使用.groupby()idx1分组,然后使用cumcount()生成组内的序列号,如下所示:

df['idx2'] = df.groupby('idx1').cumcount()

演示

df = pd.DataFrame({'idx1': [0, 0, 0, 1, 1, 1, 2, 2]})

print(df)

   idx1
0     0
1     0
2     0
3     1
4     1
5     1
6     2
7     2

df['idx2'] = df.groupby('idx1').cumcount()

print(df)


   idx1  idx2
0     0     0
1     0     1
2     0     2
3     1     0
4     1     1
5     1     2
6     2     0
7     2     1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM