Pandas DataFrame merge() Method
Example
Update the content of one DataFrame with the content from another DataFrame:
import pandas as pd
data1 = {
"name": ["Sally", "Mary",
"John"],
"age": [50, 40, 30]
}
data2 = {
"name":
["Sally", "Peter", "Micky"],
"age": [77, 44, 22]
}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
newdf = df1.merge(df2, how='right')
Try it Yourself »
Definition and Usage
The merge()
method updates the content of
two DataFrame by merging them together, using the specified method(s).
Use the parameters to control which values to keep and which to replace.
Syntax
dataframe.merge(right, how, on, left_on, right_on,
left_index, right_index, sort, suffixes, copy, indicator, validate)
Parameters
All parameters except right
, are
keyword arguments.
Parameter | Value | Description |
---|---|---|
right | Required. A DataFrame, a Series to merge with | |
how | 'left' |
Optional. Default 'inner'. Specifies how to merge |
on | String List |
Optional. Specifies in what level to do the merging |
left_on | String List |
Optional. Specifies in what level to do the merging on the DataFrame to the left |
right_on | String List |
Optional. Specifies in what level to do the merging on the DataFrame to the right |
left_index | True |
Optional. Default False. Whether to use the index from the left DataFrame as join key or not |
right_index | True |
Optional. Default False. Whether to use the index from the right DataFrame as join key or not |
sort | True |
Optional. Default False. Specifies whether to sort the DataFrame by the join key or not |
suffixes | List | Optional. Default '_x', '_y''. Specifies a list of strings to add for overlapping columns |
copy | True |
Optional. Default True. Specifies whether to keep copies or not |
indicator | True String |
Optional. Default False. Specifies whether to add a column in the DataFrame with information about the source of each row |
validate | String | Optional. Checks if the mergin is of a specified type |
Return Value
A new DataFrame, with the merged result.
This method does not change the original DataFrame.