原文:https://www . geesforgeks . org/mapping-external-values-to-data frame-values-in-pandas/
将外部值映射到数据框意味着通过保持外部字典的键与该数据框的一列相同,使用不同的值集添加到该数据框中。
要在数据框中添加外部值,我们使用字典,该字典包含要添加到数据框中的键和值。通过在数据框中添加外部值,一列将被添加到当前数据框中。在熊猫的帮助下,我们还可以将一个数据帧映射或组合到其他数据帧。
方法#1: 使用映射函数
通过使用这个映射函数,我们可以向现有的数据框中再添加一列。请记住,任何键值都不会重复,这将使数据不一致。
# Creating new dataframeimport pandas as pdinitial_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 dictionarynew_data = { "Ram":"B.Com", "Mohan":"IAS", "Tina":"LLB", "Jeetu":"B.Tech", "Meera":"MBBS" }# combine this new data with existing DataFramedf["Qualification"] = df["First_name"].map(new_data)print(df)
Output:
First_name Last_name Age City Qualification0 Ram Kumar 42 Mumbai B.Com1 Mohan Sharma 52 Noida IAS2 Tina Ali 36 Pune LLB3 Jeetu Gandhi 21 Delhi B.Tech4 Meera Kumari 23 Bihar MBBS
方法 2: 使用replace 功能
在这种方法中,我们可以用一些定义的外部值来添加或替换数据帧的一些值。
# Creating new dataframeimport pandas as pdinitial_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 dictionarynew_data = { "Ram":"Shyam", "Tina":"Riya", "Jeetu":"Jitender" }print(df, end ="\n\n")# combine this new data with existing DataFramedf = df.replace({"First_name":new_data})print(df)
Output:
First_name Last_name Age City0 Ram Kumar 42 Mumbai1 Mohan Sharma 52 Noida2 Tina Ali 36 Pune3 Jeetu Gandhi 21 Delhi4 Meera Kumari 23 Bihar First_name Last_name Age City0 Shyam Kumar 42 Mumbai1 Mohan Sharma 52 Noida2 Riya Ali 36 Pune3 Jitender Gandhi 21 Delhi4 Meera Kumari 23 Bihar
方法#3: 使用update 功能
在这种方法中,我们可以通过使用索引值来更新 dataframe 值,我们可以通过外部数据来更改列的值。
# Creating new dataframeimport pandas as pdinitial_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 dictionarynew_data = { 0:"Shyam", 2:"Riya", 3:"Jitender" }# combine this new data with existing DataFramedf["First_name"].update(pd.Series(new_data))print(df)
Output:
First_name Last_name Age City0 Shyam Kumar 42 Mumbai1 Mohan Sharma 52 Noida2 Riya Ali 36 Pune3 Jitender Gandhi 21 Delhi4 Meera Kumari 23 Bihar