/ / Pandas се присъединяват към данните от множество ключови думи - python, pandas, dataframe

Pandas се присъединяват към данните от множество ключови думи - python, pandas, dataframe

Имам три различни информационни рамки, които искам да се присъединят, като използвам етикет и прозорец като ключове.

DataFrame1

Window  Label  FeatA
123      1        h
123      2        f

DataFrame2

Window  Label  FeatB
123      1      d
123      2      s

DataFrame3

Window  Label  FeatC
123     1       d
123     2       c

резултат

Window  Label  FeatA  FeatB  FeatC
123      1       h      d       d
123      2       f      s       c

Знам как да се присъединявам към данните pandas.concat но не знаят как да определят ключовете.Всяка помощ ще бъде много оценявана.

Отговори:

2 за отговор № 1

Един чист панди отговор използва pd.concat

pd.concat([df.set_index(["Window", "Label"]) for df in [df1_, df2_, df3_]],
axis=1).reset_index()

въведете описанието на изображението тук


3 за отговор № 2

Трябва да използвате merge функция за свързване на таблици, за вашия случай, тъй като имате няколко рамки за данни, които да се присъединят, можете да ги поставите в списък и след това да използвате reduce от functools да ги обедини един по един:

import pandas as pd
from functools import reduce
reduce(lambda x, y: pd.merge(x, y, on = ["Window", "Label"]), [df1, df2, df3])

#  Window   Label   FeatA   FeatB   FeatC
# 0   123       1       h      d        d
# 1   123       2       f      s        c

1 за отговор № 3

можеш да използваш combine_first:

In[44]:df.combine_first(df1).combine_first(df2)[["Window","Label","FeatA","FeatB","FeatC"]]
Out[44]:
Window  Label FeatA FeatB FeatC
0     123      1     h     d     d
1     123      2     f     s     c

или можете да използвате сливам:

In[30]:df.merge(df1,on=["Window","Label"]).merge(df2,on=["Window","Label"])
Out[30]:
Window  Label FeatA FeatB FeatC
0     123      1     h     d     d
1     123      2     f     s     c