0

Hi I have 2 tables named as df1 and df2.In df2 contains date column which should repeat for all the rows in df1.
enter image description here

ex: for date '2/22/2022' should repeat all the rows from df1.
and my out put table will look like this
enter image description here

Need help to achieve out_df from df1 and df2.
Thanks in advance.

san1
  • 455
  • 2
  • 11

1 Answers1

2

Use how='cross' as parameter of pd.merge:

out_df = pd.merge(df2, df1, how='cross')
print(out_df)

# Output
         Date    Name Gender
0   2/22/2021     Sam      M
1   2/22/2021  Nathan      M
2   2/22/2021   Aaron      M
3   2/22/2021   Emily      F
4   2/23/2021     Sam      M
5   2/23/2021  Nathan      M
6   2/23/2021   Aaron      M
7   2/23/2021   Emily      F
8   2/24/2021     Sam      M
9   2/24/2021  Nathan      M
10  2/24/2021   Aaron      M
11  2/24/2021   Emily      F
12  2/25/2021     Sam      M
13  2/25/2021  Nathan      M
14  2/25/2021   Aaron      M
15  2/25/2021   Emily      F

Setup MRE

df1 = pd.DataFrame({'Name': ['Sam', 'Nathan', 'Aaron', 'Emily'], 
                    'Gender': ['M', 'M', 'M', 'F']})
df2 = pd.DataFrame({'Date': ['2/22/2021', '2/23/2021', '2/24/2021', '2/25/2021']})
Corralien
  • 109,409
  • 8
  • 28
  • 52