📜  将外部值映射到 Pandas 中的数据框值

📅  最后修改于: 2022-05-13 01:55:50.835000             🧑  作者: Mango

将外部值映射到 Pandas 中的数据框值

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

要在数据框中添加外部值,我们使用字典,其中包含要在数据框中添加的键和值。通过在数据框中添加外部值,一列将添加到当前数据框中。我们还可以在 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)
输出:
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)
输出:
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函数

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

# 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)
输出:
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