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ď č. 1Prí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"})