簡體   English   中英

Python通過兩個字段的內部聯接合並熊貓數據集

[英]Python Merge Pandas Datasets via inner join with two fields

我是社區中的新手,所以希望您能耐心一點。 我正在嘗試通過在“郵政編碼”和“日期”字段上使用內部聯接來合並兩個數據集。 原始代碼如下所示:

Datapump = pd.merge(hack, health, how='inner', left_on=['Date', 'CP'], right_on=['Creation', 'cp'])

但是關鍵是,每當我嘗試執行標頭操作時,我都會得到一個空的數據集,而在執行示例時可能會出錯:因此,我將“日期”字段表示為hack,將“創建”字段表示為健康作為索引。 然后我去參加。

Datapump = pd.merge(hack, health, how='inner', left_index=True, right_index=True)

不幸的是,我還需要現場郵政編碼。 因此,我在以下位置進行了另一個Datapump = pd.merge(hack, health, how='inner', left_on=['CP'], right_on=['cp'])

現在我可以獲取樣本和標頭了,但是根據我自己,一切都變得很奇怪,尤其是當我看到新數據集的條目數時:

<class 'pandas.core.frame.DataFrame'>

Int64Index:803206條目,0至803205數據列(共15列):CP 803206非空對象Tipo Contaminante 803206非空int64 Valor 803206非空float64已驗證的803206非空對象nombre 803206非空對象edad 801296非-null對象cp 803206非空對象patologia 802387非空對象已創建803206非空datetime64 [ns] Edad_Cat 786829非空類別Duration 772661 non-null timedelta64 [ns] Duration_Seconds 772661 non-null float64 weekdays_created 803206 non-null int64 month 803206 non-null float64 cat_month 803206 non-null int64 dtypes:category(1),datetime64ns,float64(3),int64(3),object(6),timedelta64ns內存使用量:92.7+ MB

實際上,在健康狀況之前,大約有9000個條目,入侵了大約6000個條目。 通過執行內部聯接,我不可能得到803.206條目的數據集。

我如何以可以提供有意義和合理結果的方式進行內部聯接?

非常感謝您的耐心配合。

安德里亞

最終,我得以解決了這個問題。 該問題是由於數據框內部存在問題。 我打開原始的csv文件,然后手動清理有問題的行。 然后,我重新導入新文件,並能夠執行聯接。 問候,安德里亞

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM