I have 2 DataFrames df1
and df2
. The two df
's are of different length. df1
is appointments and df2
is sales. I will eventually want to find sales % of consults (df1['Service']
) that turned into a sale (this is end game not needed at the moment).
For now I want to find if "Guest" in df1
is also in df2
(meaning a service/consult turned into a sale) and if so I want a 3rd DataFrame created with the combined data of 'Guest'
from df1
and df2
.
df1[['Guest', 'Therapist', 'Service', 'StartTime', 'Status']]
df2[['Guest', 'ProductName', 'Quantity']]
CodePudding user response:
Try with where
and isin
:
df3 = df1["Guest"].where(df1["Guest"].isin(df2["Guest"].tolist())).dropna()
To get a DataFrame with all columns, you could use merge
instead:
df3 = df1.merge(df2, on="Guest")