基于列值的新二级索引(熊猫数据框)

安格斯泰

我有一个熊猫数据帧:

索引1 第 1 列 列2
0 12719 第 1 行
1 12719 行 2
2 12719 第 3 行
3 12719 第 4 行
4 20000 第 1 行
5 20000 行 2
6 20000 第 3 行
7 20000 第 4 行
8 20000 第5行

我想index2根据 col1 值的出现次数(运行编号)创建一个新列

索引1 索引2 第 1 列 列2
0 0 12719 第 1 行
1 1 12719 行 2
2 2 12719 第 3 行
3 3 12719 第 4 行
4 0 20000 第 1 行
5 1 20000 行 2
6 2 20000 第 3 行
7 3 20000 第 4 行
8 4 20000 第5行

我尝试了不同的正则表达式组合,但不适合我的情况。做了很多SO和谷歌仍然没有找到解决方案。提前致谢!

海豆

您可以使用GroupBy.cumcount()生成第二个索引的值,并通过.set_index()参数将其设置为第二个索引append=True

df['index2'] = df.groupby('col1').cumcount()
df = df.set_index('index2', append=True)

结果:

print(df)

           col1  col2
  index2             
0 0       12719  row1
1 1       12719  row2
2 2       12719  row3
3 3       12719  row4
4 0       20000  row1
5 1       20000  row2
6 2       20000  row3
7 3       20000  row4
8 4       20000  row5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫数据框中第二级多重索引的总和值

如何将第二级索引添加到熊猫数据框

在第二级熊猫多索引中选择数据框的子集

熊猫数据框分组,根据分组中的位置添加二级索引(整数)

键/值数据库的二级索引

熊猫根据其他列向列多索引添加新的第二级列

在第一级和第二级过滤具有多列索引的数据框

Pandas 分层索引:基于第二级索引值合并/连接行

数据框访问二级MultiIndex

如何使用二级索引列表为Pandas数据框建立索引?

如何从多索引数据框中获取第一个二级索引?

如何基于多索引列第二级中的名称计算表达式

获取多索引数据框第二级的名称

转换Multindex数据框并按位置更改第二级索引

基于熊猫数据框中的两列值创建一个新的数据框

二值化熊猫数据框列

如何强制将熊猫数据框的第二级添加到第一级?

如何在第二级以下的多索引数据框中删除第一列,排除一些列

在二级索引中应用新行

如何强制第二级多重索引的值?

数据框,使用基于另一列索引的值创建一个新列

基于来自另一个数据框熊猫的匹配值的新列

基于列的熊猫数据框中的计数器/索引

Pandas 使用列表向列添加二级索引

低基数聚类列的二级索引打开

熊猫:在多索引数据框中创建新的(子级别)列并分配值

熊猫数据框基于元组列表创建新列

基于多个条件语句熊猫数据框创建新列

熊猫多索引切片仅在二级索引上