Open In App

Mapping external values to dataframe values in Pandas

Mapping external values to a dataframe means using different sets of values to add to that dataframe by keeping the keys of the external dictionary as same as the one column of that dataframe. To add external values to dataframe, we use a dictionary that has keys and values which we want to add to the dataframe. By adding external values in the dataframe one column will be added to the current dataframe. We can also map or combine one dataframe to other dataframe with the help of pandas.

Method #1: Using mapping function

By using the mapping function we can add one more column to an existing dataframe. Just keep in mind that no key values will be repeated it will make the data inconsistent.






# Creating new dataframe
import pandas as pd
 
initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'],
        'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'],
        'Age': [42, 52, 36, 21, 23],
        'City': ['Mumbai', 'Noida', 'Pune', 'Delhi', 'Bihar']}
 
df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name',
                                                    'Age', 'City'])
 
# Create new column using dictionary
new_data = { "Ram":"B.Com",
            "Mohan":"IAS",
            "Tina":"LLB",
            "Jeetu":"B.Tech",
            "Meera":"MBBS" }
 
# combine this new data with existing DataFrame
df["Qualification"] = df["First_name"].map(new_data)
 
print(df)

Output:

  First_name Last_name  Age    City Qualification
0 Ram Kumar 42 Mumbai B.Com
1 Mohan Sharma 52 Noida IAS
2 Tina Ali 36 Pune LLB
3 Jeetu Gandhi 21 Delhi B.Tech
4 Meera Kumari 23 Bihar MBBS

Method #2: Using replace function

In this method, we can add or replace some of the values of the dataframe with some defined external values.






# Creating new dataframe
import pandas as pd
initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'],
                'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'],
                'Age': [42, 52, 36, 21, 23],
                'City': ['Mumbai', 'Noida', 'Pune', 'Delhi', 'Bihar']}
 
df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name',
                                                    'Age', 'City'])
 
# Create new column using dictionary
new_data = { "Ram":"Shyam",
            "Tina":"Riya",
            "Jeetu":"Jitender" }
 
print(df, end ="\n\n")
 
# combine this new data with existing DataFrame
df = df.replace({"First_name":new_data})
print(df)

Output:

  First_name Last_name  Age    City
0 Ram Kumar 42 Mumbai
1 Mohan Sharma 52 Noida
2 Tina Ali 36 Pune
3 Jeetu Gandhi 21 Delhi
4 Meera Kumari 23 Bihar

First_name Last_name Age City
0 Shyam Kumar 42 Mumbai
1 Mohan Sharma 52 Noida
2 Riya Ali 36 Pune
3 Jitender Gandhi 21 Delhi
4 Meera Kumari 23 Bihar

Method #3: Using update function

In this method we can update the dataframe values by using index values we can change the value of columns by external data.




# Creating new dataframe
import pandas as pd
 
initial_data = {'First_name': ['Ram', 'Mohan', 'Tina', 'Jeetu', 'Meera'],
                'Last_name': ['Kumar', 'Sharma', 'Ali', 'Gandhi', 'Kumari'],
                'Age': [42, 52, 36, 21, 23],
                'City': ['Mumbai', 'Noida', 'Pune', 'Delhi', 'Bihar']}
 
df = pd.DataFrame(initial_data, columns = ['First_name', 'Last_name',
                                                    'Age', 'City'])
 
# Create new column using dictionary
new_data = { 0:"Shyam",
            2:"Riya",
            3:"Jitender" }
 
# combine this new data with existing DataFrame
df["First_name"].update(pd.Series(new_data))
print(df)

Output:

  First_name Last_name  Age    City
0 Shyam Kumar 42 Mumbai
1 Mohan Sharma 52 Noida
2 Riya Ali 36 Pune
3 Jitender Gandhi 21 Delhi
4 Meera Kumari 23 Bihar

Article Tags :