如何根據值範圍和標識符有效合併 Pandas Dataframe?
基於值範圍和標識符合併Pandas 資料幀
在pandas 中,可以使用基於範圍的條件和標識符來實現合併資料幀透過合併和過濾操作的組合。然而,在處理大型資料集時,這種方法可能效率低。利用 SQL 的另一種方法可以提供更好的效能。
讓我們考慮一個範例,其中我們有兩個資料幀 A 和 B。資料幀 A 包含日期 (fdate) 和識別碼 (cusip),而資料幀 B 包含日期(namedt 和 nameenddt)和相同的識別碼 (ncusip)。我們的目標是合併這些資料幀,其中 A 中的 fdate 落在 B 中的 namet 和 nameenddt 定義的日期範圍內。
以下Python 程式碼示範了傳統的pandas 方法:
<code class="python">df = pd.merge(A, B, how='inner', left_on='cusip', right_on='ncusip') df = df[(df['fdate']>=df['namedt']) & (df['fdate']<=df['nameenddt'])]</code>
雖然這種方法有效,但它涉及無條件合併資料幀,然後根據日期條件進行過濾,這對於大型資料集來說計算成本可能很高。
另一個方法是使用SQL 查詢:
<code class="python">import pandas as pd import sqlite3 # Create a temporary database in memory conn = sqlite3.connect(':memory:') # Write the dataframes to tables A.to_sql('table_a', conn, index=False) B.to_sql('table_b', conn, index=False) # Construct the SQL query query = ''' SELECT * FROM table_a JOIN table_b ON table_a.cusip = table_b.ncusip WHERE table_a.fdate BETWEEN table_b.namedt AND table_b.nameenddt ''' # Execute the query and create a Pandas dataframe df = pd.read_sql_query(query, conn)</code>
這個方法有幾個優點:
- 執行速度更快: SQL 針對資料處理進行了最佳化,使其對於基於範圍的過濾更加高效。
- 避免中間數據:直接提取過濾後的數據,無需建立大型中間數據框。
- 簡單性:查詢簡潔,易於理解。
總之,使用 SQL 根據基於範圍的條件和標識符合併資料幀比傳統的 Pandas 操作具有效能優勢,特別是對於較大的資料集。
以上是如何根據值範圍和標識符有效合併 Pandas Dataframe?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
