パンダ - 重複した列でソートできない

自分のデータフレームの1つをソートすると、

my_df.sort(['column_A', 'column_B'])

私は得ます:

ValueError: Cannot sort by duplicate column ['A', 'B']

列は異なるデータと異なる名前を持ちます。これは完全なエラーです。

/Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/pandas/core/frame.pyc in sort(self, columns, column, axis, ascending, inplace)                
   2534             columns = column
   2535         return self.sort_index(by=columns, axis=axis, ascending=ascending,                                                                           
-> 2536                                inplace=inplace)
   2537 
   2538     def sort_index(self, axis=0, by=None, ascending=True, inplace=False,    


/Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/pandas/core/frame.pyc in sort_index(self, axis, by, ascending, inplace, kind)                 
   2603                 if k.ndim == 2:
   2604                     raise ValueError('Cannot sort by duplicate column % s'                                                                            
-> 2605                                      % str(by))
   2606                 indexer = k.argsort(kind=kind)
   2607                 if isinstance(ascending, (tuple, list)):

ValueError: Cannot sort by duplicate column ['A', 'B']

更新:

これがデータフレームです。

> my_df.head()
                            db_pixel                                      db_advertiser-campaign
0                Schnucks - Rockford  GateHouse Media- Inc. Q1_2013--Katy's Pet Cemetary_1.13.14
1                 Speedway Auto Mall  GateHouse Media- Inc. Q1_2013--Katy's Pet Cemetary_1.13.14
2   Hagerstown Honda_Homepage_1.9.14  GateHouse Media- Inc. Q1_2013--Katy's Pet Cemetary_1.13.14
3                      Mitchell Gold  GateHouse Media- Inc. Q1_2013--Katy's Pet Cemetary_1.13.14
4  Gambino Realtors - PropelRETARGET  GateHouse Media- Inc. Q1_2013--Katy's Pet Cemetary_1.13.14

[5 rows x 2 columns]

次のコマンドでもエラーが発生します。

> my_df.head().sort(['db_pixel', 'db_advertiser-campaingn'])                                                               
7
それでも複製することはできませんが、 DataFrame(df.to_dict())を使用すると失敗しますかもしそうなら、 df.to_dict()の出力を貼り付けることができますか?
追加された 著者 Andy Hayden,
それでも複製することはできませんが、 DataFrame(df.to_dict())を使用すると失敗しますかもしそうなら、 df.to_dict()の出力を貼り付けることができますか?
追加された 著者 Andy Hayden,
これを実証するDataFrameを教えてください(最初の数行が必要なだけです)
追加された 著者 Andy Hayden,
それでも複製することはできませんが、 DataFrame(df.to_dict())を使用すると失敗しますかもしそうなら、 df.to_dict()の出力を貼り付けることができますか?
追加された 著者 Andy Hayden,
0.13.1ではそのフレームでこれを再現できません。 :■それを再現した完全な小さな例を挙げてください。
追加された 著者 Andy Hayden,
0.13.1ではそのフレームでこれを再現できません。 :■それを再現した完全な小さな例を挙げてください。
追加された 著者 Andy Hayden,
0.13.1ではそのフレームでこれを再現できません。 :■それを再現した完全な小さな例を挙げてください。
追加された 著者 Andy Hayden,
これを実証するDataFrameを教えてください(最初の数行が必要なだけです)
追加された 著者 Andy Hayden,
ありがとう@AndyHayden - 私はOPを更新しました。私の投稿の最後のコメントに注意してください。エラーは head()でも発生します( head()をすべて含めました)。これは 0.13.1 のすべてです。
追加された 著者 Josh,
ありがとう@AndyHayden - 私はOPを更新しました
追加された 著者 Josh,
@AndyHaydenあなたの時間を無駄にしてすみません。 df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。本当に恥ずかしい。 :( ご協力いただきありがとうございます。
追加された 著者 Josh,
@AndyHaydenあなたの時間を無駄にしてすみません。 df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。本当に恥ずかしい。 :( ご協力いただきありがとうございます。
追加された 著者 Josh,
@AndyHaydenあなたの時間を無駄にしてすみません。 df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。本当に恥ずかしい。 :( ご協力いただきありがとうございます。
追加された 著者 Josh,
@AndyHayden - ちなみに DataFrame(df.to_dict())は知っておくと便利です。
追加された 著者 Josh,
@AndyHayden - ちなみに DataFrame(df.to_dict())は知っておくと便利です。
追加された 著者 Josh,
@AndyHayden - ちなみに DataFrame(df.to_dict())は知っておくと便利です。
追加された 著者 Josh,
ありがとう@AndyHayden - 私はOPを更新しました
追加された 著者 Josh,
ありがとう@AndyHayden - 私はOPを更新しました
追加された 著者 Josh,

6 答え

df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。 OPを単純化するために、電話を正確に書いていませんでした。混乱させて申し訳ありません

2
追加された
ラベルではなくインデックスで列を参照する方法を教えてください。
追加された 著者 Ham Sam,

df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。 OPを単純化するために、電話を正確に書いていませんでした。混乱させて申し訳ありません

2
追加された
ラベルではなくインデックスで列を参照する方法を教えてください。
追加された 著者 Ham Sam,

df.sort(columns = my_columns)の代わりに df.sort(columns = [my_columns])を呼び出していたことに気づきました。 OPを単純化するために、電話を正確に書いていませんでした。混乱させて申し訳ありません

2
追加された
ラベルではなくインデックスで列を参照する方法を教えてください。
追加された 著者 Ham Sam,

私は同じ問題を抱えていた、そして私は角括弧の中に括弧を挿入することによってそれを修正することができた:

my_df.head().sort([('db_pixel', 'db_advertiser-campaign')])
2
追加された

私は同じ問題を抱えていた、そして私は角括弧の中に括弧を挿入することによってそれを修正することができた:

my_df.head().sort([('db_pixel', 'db_advertiser-campaign')])
2
追加された

私は同じ問題を抱えていた、そして私は角括弧の中に括弧を挿入することによってそれを修正することができた:

my_df.head().sort([('db_pixel', 'db_advertiser-campaign')])
2
追加された