Pandas 从字典映射值添加新列

Pandas 从字典映射值添加新列

在本文中,我们将介绍如何使用Pandas从字典映射值添加新列,以及如何根据条件向Pandas DataFrame添加新列。我们将使用Python中最受欢迎和最广泛使用的数据处理库,Pandas来完成这项任务。

阅读更多:Pandas 教程

创建Pandas DataFrame

为了演示如何使用Pandas从字典映射值添加新列,我们需要创建一个Pandas DataFrame。我们可以使用Pandas的DataFrame()函数来创建一个DataFrame。

import pandas as pd

# 创建示例数据
data = {'name': ['John', 'Sara', 'Andrew', 'Fleur', 'Emily', 'Jacob', 'Jasmine'],
        'gender': ['Male', 'Female', 'Male', 'Female', 'Female', 'Male', 'Female'],
        'age': [25, 31, 19, 26, 22, 25, 29],
        'city': ['New York', 'Houston', 'Chicago', 'Los Angeles', 'San Francisco', 'Phoenix', 'Austin']}

# 创建数据帧
df = pd.DataFrame(data)

# 显示DataFrame
print(df)
Python

输出结果为:

      name  gender  age           city
0     John    Male   25       New York
1     Sara  Female   31        Houston
2   Andrew    Male   19        Chicago
3    Fleur  Female   26    Los Angeles
4    Emily  Female   22  San Francisco
5    Jacob    Male   25        Phoenix
6  Jasmine  Female   29         Austin
Python

这是一个包含姓名、性别、年龄和城市信息的DataFrame。现在我们将向其添加一个新的列,将城市名称映射到州名。

从字典映射新列

有时,我们需要从字典中检索值或映射值,并将这些映射值添加到Pandas DataFrame的新列中。我们可以使用Pandas的map()函数来执行将键映射到值的操作。

# 创建字典
state_dict = {'New York': 'New York', 
              'Houston': 'Texas',
              'Chicago': 'Illinois',
              'Los Angeles': 'California',
              'San Francisco': 'California',
              'Phoenix': 'Arizona',
              'Austin': 'Texas'}

# 添加新列,将城市映射到州名
df['state'] = df['city'].map(state_dict)

# 显示更新后的DataFrame
print(df)
Python

输出结果为:

      name  gender  age           city        state
0     John    Male   25       New York     New York
1     Sara  Female   31        Houston        Texas
2   Andrew    Male   19        Chicago     Illinois
3    Fleur  Female   26    Los Angeles   California
4    Emily  Female   22  San Francisco   California
5    Jacob    Male   25        Phoenix      Arizona
6  Jasmine  Female   29         Austin        Texas
Python

我们使用map()函数将城市名映射到州名,并将他们添加到一个名为state的新列中。通过这个例子,我们可以看到如何使用Pandas将字典映射到新列中。

根据条件添加新列

我们可以通过Python中的逻辑运算符(<=, >=, ==, !=, <, >)来添加新列。例如,假设我们想向数据帧中的所有男性增加10美元的工资,我们可以使用以下代码:

# 如何根据条件向Pandas DataFrame添加新列
df['salary'] = df.apply(lambda row: row['age'] * 100 + 10 if row['gender'] == 'Male' else 0, axis=1)

# 显示更新后的DataFrame
print(df)
Python

输出结果为:

      name  gender  age           city        state  salary
0     John    Male   25       New York     New York    2510
1     Sara  Female   31        Houston        Texas       0
2   Andrew    Male   19        Chicago     Illinois    1910
3    Fleur  Female   26    Los Angeles   California       0
4    Emily  Female   22  San Francisco   California       0
5    Jacob    Male   25        Phoenix      Arizona    2510
6  Jasmine  Female   29         Austin        Texas       0
Python

我们使用了apply()函数来遍历每一行,并在gender为男性时增加10美元的工资。通过此示例,我们可以看到如何根据条件向Pandas DataFrame添加新列。

总结

在本文中,我们使用Pandas演示了如何从字典映射新列,以及如何根据条件向Pandas DataFrame添加新列。使用Pandas可以轻松地进行数据处理和操作,这使得处理大量数据变得更加简单,同时也提高了代码效率。在实际应用中,我们可以结合其他Python库和工具来实现更多功能,例如使用Matplotlib可视化分析数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册