共通の日付列に基づいて複数のデータフレームを効率的に結合するにはどうすればよいですか?
日付に基づいて複数のデータフレームを結合する
共通の日付列を持つ、行と列の数が異なる複数のデータフレームがあります。目標は、これらのデータフレームをマージして、各日付がすべてのデータフレームに共通する行を取得することです。
非効率的な再帰アプローチ
データフレームをマージするために再帰関数を使用しようとしました欠陥があります。関数は同じ入力で自分自身を継続的に呼び出すため、無限ループに入ります。このアプローチは非効率的で、エラーが発生しやすくなります。
reduce を使用した最適化されたソリューション
複数のデータフレームをマージするより効率的な方法は、functools モジュールの関数 reduce を使用することです。この関数は、指定されたマージ操作を隣接するデータフレームのペアに繰り返し適用することにより、データフレームのリストを単一のデータフレームに縮小します。
次のコード スニペットは、このアプローチを示しています。
import pandas as pd from functools import reduce dfs = [df1, df2, df3] # list of dataframes df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dfs)
このコードでは、reduce 関数は、隣接するデータフレームのペアを繰り返しマージすることで、dfs リストを単一のデータフレームに縮小します。 on='date' パラメーターは、日付列に基づいてマージを実行することを指定します。 how='outer' パラメーターを使用すると、同じ日付を共有していない場合でも、両方のデータフレームのすべての行がマージされた結果に確実に含まれます。
reduce 関数の利点
reduce 関数を使用すると、次のようなメリットがあります。利点:
- シンプルさ: コードは簡潔で理解しやすいです。
- ネストなし: 再帰アプローチとは異なり、マージ操作のネストがないため、無限のリスクが排除されます。ループ。
- 拡張性: dfs リストにデータフレームを追加または削除して、マージ操作を動的に変更できます。
例
提供されたデータフレーム df1、df2、および df3 を使用すると、次のマージされたデータフレームが得られます:
DATE VALUE1 VALUE2 VALUE3 0 May 15, 2017 1901.00 2902.00 3903.00
このデータフレームには、3 つの入力データフレームすべてに共通する日付を持つ行のみが含まれています。
以上が共通の日付列に基づいて複数のデータフレームを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
