Python 熊猫:独特的数据帧

Python 熊猫:独特的数据帧,python,pandas,Python,Pandas,我有一个具有重复行的数据帧。我希望得到一个具有唯一索引且没有重复项的数据帧。可以放弃重复的值。这可能吗?这是由groupby完成的吗?通过阅读文档示例找到了一种方法 df = pandas.DataFrame({'b':[2,2,4,5], 'c': [3,3,0,9]}, index=[1,1,3,7]) df_unique = df.groupby(level=0).first() df b c 1 2 3 1 2 3 3 4 0 7 5 9 df_unique

我有一个具有重复行的数据帧。我希望得到一个具有唯一索引且没有重复项的数据帧。可以放弃重复的值。这可能吗?这是由
groupby
完成的吗?

通过阅读文档示例找到了一种方法

df = pandas.DataFrame({'b':[2,2,4,5], 'c': [3,3,0,9]}, index=[1,1,3,7])
df_unique = df.groupby(level=0).first()

df
   b  c
1  2  3
1  2  3
3  4  0
7  5  9

df_unique
   b  c
1  2  3
3  4  0
7  5  9

值得注意的是,这可能是第一次,也可能是最后一次。所以你需要先按其他数量排序(如果你幸运的话),或者做一些复杂的分组逻辑。这是错误的。drop_duplicates仅作用于值(至少在我的版本中)。如果要删除索引和值,则需要重置_索引;如果要具有唯一索引,则只需使用索引。除了groupby之外,也许还有另一种方法来强制执行唯一索引?如果不想分配新变量,请使用
df.drop_duplicates(inplace=True)
。这不会提供具有唯一索引的数据帧,但下面@Adam Greenhall的解决方案适用于此,这依赖于数据字段所在行的行的行索引被复制(b,c)是重复的,有效地使行的索引部分成为您希望唯一(不重复)的向量。如果您有重复的索引项,这就是您想要的答案。我得到的是
ValueError:index包含重复项,在多索引上执行
unstack
时无法重塑
,但此解决方案仅适用于我必须执行的
df_unique=df.groupby(level=[0,1])。first()
In [29]: df.drop_duplicates()
Out[29]: 
   b  c
1  2  3
3  4  0
7  5  9