将外部值映射到熊猫的数据帧值

原文:https://www . geesforgeks . org/mapping-external-values-to-data frame-values-in-pandas/

将外部值映射到数据框意味着通过保持外部字典的键与该数据框的一列相同,使用不同的值集添加到该数据框中。

要在数据框中添加外部值,我们使用字典,该字典包含要添加到数据框中的键和值。通过在数据框中添加外部值,一列将被添加到当前数据框中。在熊猫的帮助下,我们还可以将一个数据帧映射或组合到其他数据帧。

方法#1: 使用映射函数

通过使用这个映射函数,我们可以向现有的数据框中再添加一列。请记住,任何键值都不会重复,这将使数据不一致。

# 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

方法 2: 使用replace 功能

在这种方法中,我们可以用一些定义的外部值来添加或替换数据帧的一些值。

# 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

方法#3: 使用update 功能

在这种方法中,我们可以通过使用索引值来更新 dataframe 值,我们可以通过外部数据来更改列的值。

# 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