[解決済み] Pandas Merge - カラムの重複を回避する方法
2022-07-21 01:13:30
質問
2つのデータフレーム間でマージを試みています。 各データフレームには2つのインデックスレベル(日付、cusip)があります。 列の中で、いくつかの列は、例えば、2つの間で一致します(通貨、adjの日付)。
インデックスによってこれらをマージするが、通貨と adj date のコピーを 2 つ取らないようにする最良の方法は何でしょうか。
各データフレームは90カラムなので、私はすべてを手で書き出すことを避けようとしています。
df: currency adj_date data_col1 ...
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45
...
df2: currency adj_date data_col2 ...
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45
...
もし私が
dfNew = merge(df, df2, left_index=True, right_index=True, how='outer')
私は
dfNew: currency_x adj_date_x data_col2 ... currency_y adj_date_y
date cusip
2012-01-01 XSDP USD 2012-01-03 0.45 USD 2012-01-03
ありがとうございました! ...
どのように解決するのですか?
1つのDataFrameにのみ存在する列を調べ、これを使用してマージで列のサブセットを選択することができます。
cols_to_use = df2.columns.difference(df.columns)
そして、マージを実行します(これはインデックス・オブジェクトですが、便利な
tolist()
メソッドがあることに注意してください)。
dfNew = merge(df, df2[cols_to_use], left_index=True, right_index=True, how='outer')
これにより、マージ時にカラムが衝突するのを避けることができます。
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pandasのカラム名のリネーム
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] PythonでSelenium WebDriverを使用してテキストを取得する方法