Home > OS >  Dataframe Concatenation with Pandas
Dataframe Concatenation with Pandas

Time:12-21

i'm quite new to pandas and i'm stuck with this dataframe concatenation. Let's say i've 2 dataframes:

df_1=pd.DataFrame({
"A":[1, 1, 2, 2, 3, 4, 4],
"B":[1, 2, 1, 2, 1, 1, 3],
"C":['a','b','c','d','e','f','g']
})

and

df_2=pd.DataFrame({
    "A":[1, 3, 4],
    "D":[1,'m',7]
})

I would like to concatenate/merge the 2 dataframes on the same values of ['A'] so that the resulting dataframe is:

df_3=pd.DataFrame({
    "A":[1, 1, 3, 4, 4],
    "B":[1, 2, 1, 1, 3],
    "C":['a','b','e','f','g'],
    "D":[1, 1, 'm', 7, 7]
})

How can i do that?

Thanks in advance

CodePudding user response:

Just do an inner merge:

df_1.merge(df_2, how="inner", on="A")

outputs

   A  B  C  D                                                                                                        
0  1  1  a  1                                                                                                        
1  1  2  b  1                                                                                                        
2  3  1  e  m                                                                                                        
3  4  1  f  7                                                                                                        
4  4  3  g  7 

CodePudding user response:

You can also do a left merge, and then dropna

df_3 = df_1.merge(df_2, on=['A'], how='left').dropna(axis=0)

Output:

   A  B  C  D
0  1  1  a  1
1  1  2  b  1
4  3  1  e  m
5  4  1  f  7
6  4  3  g  7
  • Related