2012-10-18 23 views
6

インデックスが一意であることを強制する機能はありますか?それとも、それはdictやbackなどに変換することによって、これをPython自体で処理するだけでしょうか?python pandasは連続して重複を削除します

以下のコメントに記載されているように、python pandasはnumpy/scipy上に構築されたプロジェクトです。

to_dictとback worksですが、BIGになるとこれは遅くなると思います。

In [24]: a = pandas.Series([1,2,3], index=[1,1,2]) 

In [25]: a 
Out[25]: 
1 1 
1 2 
2 3 

In [26]: a = a.to_dict() 

In [27]: a 
Out[27]: {1: 2, 2: 3} 

In [28]: a = pandas.Series(a) 

In [29]: a 
Out[29]: 
1 2 
2 3 

答えて

3

使用groupbylast()

In [279]: s 
Out[279]: 
a 1 
b 2 
b 3 
b 4 
e 5 

In [280]: grouped = s.groupby(level=0) 

In [281]: grouped.first() 
Out[281]: 
a 1 
b 2 
e 5 

In [282]: grouped.last() 
Out[282]: 
a 1 
b 4 
e 5 
+0

pandas 0.8以降では、重複するインデックス、つまりs = Series([1,2,1]、index = ['a'、 'a'、 'b'])を持つことができると思います。 to_dictとbackはそのトリックを行いますが、これを処理するオプションや何かがあるかのように思われます。あるいは、私がSeriesを構築している方法と関係があるかもしれません。 – mathtick

+0

は質問をクリアするためのものです。それは時間のカップルでウェスマッキニーを見逃したうんざりです... – root

+0

@ mathtick - 答えを編集しました。 – root

6

ところで、私たちは、近い将来にDataFrame.drop_duplicatesのようなシリーズにdrop_duplicatesメソッドを追加することを計画。

+0

その後に追加されましたが、OPの場合には何もしません(pd.Series([1,2,3]、index = [1,1,2])。drop_duplicates() ' - >' 1:1、1:2、2:3')、rootの答えが使われるべきです。 – metakermit

+0

FWIW、 'df.drop_duplicates'が実装されました。 –

+0

シリーズ用ではなく、データフレーム@TimMcNamara用に実装されています。 –

関連する問題