[解決済み】python pandasが重複したカラムを削除します。
質問
データフレームから重複した列を削除する最も簡単な方法は何ですか?
テキストファイルを読んでいるのですが、列が重複しています。
import pandas as pd
df=pd.read_table(fname)
カラム名は
Time, Time Relative, N2, Time, Time Relative, H2, etc...
TimeとTime Relativeのカラムはすべて同じデータを含んでいます。私は欲しい。
Time, Time Relative, N2, H2
などなど、落とす、消す、などの私の試みはすべて。
df=df.T.drop_duplicates().T
一意的に評価されるインデックスのエラーになる。
Reindexing only valid with uniquely valued index objects
パンダ初心者で申し訳ありません。何かアドバイスがあればお願いします。
追加情報
Pandasバージョン:0.9.0
Python バージョン: 2.7.3
Windows 7
(Pythonxy2.7.3.0経由でインストールしたもの)
データファイル(注:実際のファイルでは列はタブで区切られていますが、ここでは空白4文字で区切られています)。
Time Time Relative [s] N2[%] Time Time Relative [s] H2[ppm]
2/12/2013 9:20:55 AM 6.177 9.99268e+001 2/12/2013 9:20:55 AM 6.177 3.216293e-005
2/12/2013 9:21:06 AM 17.689 9.99296e+001 2/12/2013 9:21:06 AM 17.689 3.841667e-005
2/12/2013 9:21:18 AM 29.186 9.992954e+001 2/12/2013 9:21:18 AM 29.186 3.880365e-005
... etc ...
2/12/2013 2:12:44 PM 17515.269 9.991756+001 2/12/2013 2:12:44 PM 17515.269 2.800279e-005
2/12/2013 2:12:55 PM 17526.769 9.991754e+001 2/12/2013 2:12:55 PM 17526.769 2.880386e-005
2/12/2013 2:13:07 PM 17538.273 9.991797e+001 2/12/2013 2:13:07 PM 17538.273 3.131447e-005
解決方法は?
以下は、重複した列を削除するための1行の解決策です。 列名 :
df = df.loc[:,~df.columns.duplicated()]
仕組みについて
データフレームの列が以下の通りだとする。
['alpha','beta','alpha']
df.columns.duplicated()
はブーリアン配列を返します。
True
または
False
を各カラムに設定します。もし、それが
False
であれば、カラム名はその時点までで一意であり、もしそれが
True
の場合、カラム名は先に重複しています。例えば、与えられた例を使って、返される値は次のようになります。
[False,False,True]
.
Pandas
は、ブーリアン値を使ったインデックスを作成することができ、これにより
True
の値です。重複していないカラムを保持したいので、上のブール配列は反転させる必要があります (つまり
[True, True, False] = ~[False,False,True]
)
最後に
df.loc[:,[True,True,False]]
は、前述のインデックス作成機能を使って、重複しないカラムのみを選択します。
備考 : 上記はカラム名のみをチェックします。 ではなく カラムの値です。
関連
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み】大きなpandasデータフレームにすべての列の名前を表示する方法は?