簡體   English   中英

合並 Pandas 數據幀; 將 DataFrame2 的行插入到變量 DataFrame1 的行/列中

[英]Merging Pandas DataFrames; Inserting DataFrame2's rows into variable DataFrame1's rows/columns

這是我在這里嘗試做的一個有點混亂/具有挑戰性的合並,我還沒有找到適用於這種情況的 StackOverflow 問題,所以這里是:

DataFrame1 是我的“最終目標”的格式(所以我最終想將 DataFrame2 中的數據粘貼到 DataFrame1 中),看起來像下面這樣:

輪廓: 姓名: 公司名稱1: 職稱1: 工作總結1: 公司名稱2: 職稱2: 工作總結2: 公司名稱3: 職稱3: 工作總結3:
個人資料_0 約翰·多伊
Profile_1 簡·史密斯
Profile_2 瑪麗·羅
Profile_3 喬什莫

請注意,上面 DataFrame1 中填充的唯一列是 Profile 和 Name。

DataFrame2如下:

輪廓: 姓名: 工作 #: 公司名稱: 職稱: 工作總結:
個人資料_0 約翰·多伊 1 A公司 容量 總結一
個人資料_0 約翰·多伊 2 B公司 容量 b 摘要 b
個人資料_0 約翰·多伊 3 公司 C 容量 c 總結 c
Profile_1 簡·史密斯 1 公司 X 容量 x 總結 x
Profile_1 簡·史密斯 2 Y公司 容量y 總結 y
Profile_1 簡·史密斯 3 Z公司 容量z 總結 z
Profile_2 瑪麗·羅 1 公司 P 容量 p 總結 p
Profile_2 瑪麗·羅 2 公司 Q 容量q 總結q

這就是我卡住的地方。 通過一些 Pandas 魔術,我試圖得出以下結論:

輪廓: 姓名: 公司名稱1: 職稱1: 工作總結1: 公司名稱2: 職稱2: 工作總結2: 公司名稱3: 職稱3: 工作總結3:
個人資料_0 約翰·多伊 A公司 容量 總結一 B公司 容量 b 摘要 b 公司 C 容量 c 總結 c
Profile_1 簡·史密斯 公司 X 容量 x 總結 x Y公司 容量y 總結 y Z公司 容量z 總結 z
Profile_2 瑪麗·羅 公司 P 容量 p 總結 p 公司 Q 容量q 總結q
Profile_3 喬什莫

有誰知道如何在 Pandas 中進行這樣的合並/加入? 任何幫助將不勝感激:。)感謝您的閱讀。

戰略

  1. 通過set_index()和 unstack( unstack()重塑
  2. 以新形狀重建 df,從多索引中命名列
df = pd.read_csv(io.StringIO("""Profile:    Name:   Job #:  CompanyName:    JobTitle:   JobSummary:
Profile_0   John Doe    1   Firm A  Capacity a  Summary a
Profile_0   John Doe    2   Firm B  Capacity b  Summary b
Profile_0   John Doe    3   Firm C  Capacity c  Summary c
Profile_1   Jane Smith  1   Firm X  Capacity x  Summary x
Profile_1   Jane Smith  2   Firm Y  Capacity y  Summary y
Profile_1   Jane Smith  3   Firm Z  Capacity z  Summary z
Profile_2   Mary Roe    1   Firm P  Capacity p  Summary p
Profile_2   Mary Roe    2   Firm Q  Capacity q  Summary q"""), sep="\t")

# change from long to wide
df = df.set_index(["Profile:","Name:","Job #:"]).unstack()
# rebuild df with values and columns from multi-index
df = pd.DataFrame(df.reset_index().values, columns=["Profile:","Name:"]+ [f"{c[0][:-1]}{c[1]}:" for c in df.columns])

output

    Profile:       Name: CompanyName1: CompanyName2: CompanyName3:  JobTitle1:  JobTitle2:  JobTitle3: JobSummary1: JobSummary2: JobSummary3:
0  Profile_0    John Doe        Firm A        Firm B        Firm C  Capacity a  Capacity b  Capacity c    Summary a    Summary b    Summary c
1  Profile_1  Jane Smith        Firm X        Firm Y        Firm Z  Capacity x  Capacity y  Capacity z    Summary x    Summary y    Summary z
2  Profile_2    Mary Roe        Firm P        Firm Q           NaN  Capacity p  Capacity q         NaN    Summary p    Summary q          NaN

暫無
暫無

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

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