如何处理“仅对具有唯一值的索引对象有效的索引”

菲利普斯

我有一个名称为(df的数据框

df:

  Group  Name
0     A   jim
1     B   bob
2     C   joe
3     A  jane
4     C   doe

以及时间表数据帧(df1):

df1:

      Group     Due_Date      Assignment
0     A         1-19 17:00    Quiz #1 A
1     B         1-21 16:30    Quiz #1 A
2     C         1-21 16:30    Quiz #1 A
5     A         1-24 11:30    Exam A
6     B         1-24 11:30    Exam A
7     C         1-24 12:30    Exam A

我将df1(df1_pivoted)设置为枢轴,以将分配放在各df1列中:

df1 = df1.pivot(index='Group',
         columns='Assignment',
         values='Due_Date')
df1_pivoted:

Assignment      Exam A   Quiz #1 A
Group
A           1-24 11:30  1-19 17:00
B           1-24 11:30  1-21 16:30
C           1-24 12:30  1-21 16:30

然后,我尝试重新添加名称,但无法弄清楚如何处理“仅对具有唯一值的索引对象有效的索引”。我认为这是因为某些名称与多个组相关联:

d=df.set_index('Group')['Name']
p='({})'.format('\\b|\\b'.join(df['Group']))
df3['Name']=df3['Group'].str.extract(p,expand=False).map(d)

导致错误:“重新索引仅对唯一值的索引对象有效”

我想要df1_final返回的最终数据框()如下:

df1_final:
Group   Name    Exam A      Quiz #1 A
A       jim     1-24 11:30  1-19 17:00
B       bob     1-24 11:30  1-21 16:30
C       joe     1-24 12:30  1-21 16:30
A       jane    1-24 11:30  1-19 17:00
C       doe     1-24 12:30  1-21 16:30

如果有更Python化的方法可以做到这一点,那么我肯定会学习更干净的编程。感谢您的帮助。这个社区真的很棒。去年,我将编程作为一种业余爱好,目的是使工作更轻松/更有趣,而且我不知道如果没有大家和您的帮助,我是否会坚持下去。再次感谢

BVJ

问题是大熊猫不知道如何处理直接分配,因为A和C的价值不止一个。改用左联接使它起作用。您的示例已损坏(缺少要重现的部分),因此可以想象df1_pivoted是您的透视df1,并且创建的df3看起来像

df3:
Group   Name  
A       jim 
B       bob
C       joe
A       jane 
C       doe

然后以下应该做的工作

df3.set_index('Group', inplace=True)
df1_pivoted = df1_pivoted.join(df3, how='left')

或者,您可以重置索引,并在“组”列上进行合并以达到相同的效果。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫:InvalidIndexError:仅对具有唯一值的Index对象有效的重新索引

InvalidIndexError:重新索引仅对具有唯一值的Index对象有效

唯一索引抛出:重新索引仅对唯一值的索引对象有效

熊猫-重新索引仅对唯一值的索引对象有效

熊猫:重新索引仅对唯一值的索引对象有效

Xarray-InvalidIndexError:重新索引仅对唯一值索引对象有效

pd.to_datetime产生“仅对具有唯一值的Index对象有效的重新索引”

Concat DataFrame重新索引仅对唯一值的Index对象有效

如何有效地从具有不同索引的 Pandas 数据框中生成唯一的值对?

沙发床索引如何处理索引无效的文档和新的有效文档?

Pandas concat - InvalidIndexError:重新索引僅對唯一值的索引對像有效

連接兩個數據幀:重新索引僅對唯一值的索引對像有效

具有唯一索引的MongoDB批处理插入

如何处理带有NULL值的索引列?

获取索引值的有效方法

Postgres:具有值的复合唯一索引

如何使布尔值索引仅对于True是唯一的

如何使用索引有效地获取张量中每一行的值?

AWS DynamoDB-如何设计一个表/索引,可以有效地检索具有特定值/状态的大量项目

如何创建具有特定值的猫鼬唯一索引?

存储具有相应索引的对象的最有效方法

如何处理重复的唯一索引错误?

如何有效裁剪*索引*位图并获得*索引*结果?

如何使用索引和布尔索引有效设置numpy数组的值?

未处理的异常:RangeError(索引):无效值:有效值范围为空:0

更新多個具有唯一值的模型對象的更有效方法

如何获取每一行不同列的最后一个有效索引的值

从具有值的JSON对象获取索引

有效地找到数组中对象的索引