/ / Vnorené zlúčenie v pandách s príponami - python, pandy

Vnorené splynie v pandách s príponami - python, panda

Snažím sa spojiť viaceré dátové rámce v pandách a udržať stĺpce štítky priamo vo výslednom dátovom rámci.Tu je môj testovací prípad:

import pandas as pd
df1 = pd.DataFrame(data = [[1,1],[3,1],[5,1]], columns = ["key","val"])
df2 = pd.DataFrame(data = [[1,2],[3,2],[7,2]], columns = ["key","val"])
df3 = pd.DataFrame(data = [[1,3],[2,3],[4,3]], columns = ["key","val"])
df = pd.merge(pd.merge(df1,df2,on="key", suffixes=["_1","_2"]),df3,on="key",suffixes=[None,"_3"])

Dostanem toto:

df =
key    val_1   val_2   val
0     1       1      2       3

Toto by som rád videl:

df =
key    val_1   val_2   val_3
0     1       1      2       3

Posledný pár prípon, ktorý som zadal, je: [None,"_3"], pričom logika je dvojica ["_1","_2"] vytvoril jedinečné názvy stĺpcov pre predchádzajúce zlúčenie.

odpovede:

2 pre odpoveď č. 1

Prípona je potrebná iba v prípade zlúčeniadátový rámec má dva stĺpce s rovnakým názvom. Keď zlúčite df3, váš dátový rámec má názvy stĺpcov val_1 a val_2, takže nie je prekrytie. Môžete to zvládnuť tým, že premenujete val na val_3 takto

df = df1.merge(df2, on = "key", suffixes=["_1","_2"]).merge(df3, on = "key").rename(columns = {"val": "val_3"})