Pandas 如何更改一列中的所有值

Pandas 如何更改一列中的所有值

在本文中,我们将介绍如何使用Pandas更改一列中的所有值。有时候,我们需要对数据进行更改,例如将所有数据都转换为小写字母,或者使用一种不同的格式进行数据显示。针对这些需要,我们通常可以使用Pandas的DataFrame对象提供的属性和方法来实现。

阅读更多:Pandas 教程

数据准备

首先,我们需要准备一些数据。以下是一个示例数据,包含学生的姓名、年龄和成绩信息:

import pandas as pd

df = pd.DataFrame({
    'name': ['Tom', 'Jerry', 'Mickey', 'Donald'],
    'age': [20, 22, 18, 19],
    'score': [85, 90, 95, 92]
})

print(df)
Python

输出结果:

      name  age  score
0      Tom   20     85
1    Jerry   22     90
2   Mickey   18     95
3   Donald   19     92
Python

接下来,我们将通过Pandas对这些数据进行修改。

方法一:使用apply()方法

我们可以使用apply()方法将一列中的所有值进行传递给一个函数,并将函数的返回值作为新的值。例如,我们可以将每个学生的姓名转换为小写字母:

df['name'] = df['name'].apply(lambda x: x.lower())

print(df)
Python

输出结果:

      name  age  score
0      tom   20     85
1    jerry   22     90
2   mickey   18     95
3   donald   19     92
Python

同样的方法,我们还可以将所有学生的成绩乘以2:

df['score'] = df['score'].apply(lambda x: x*2)

print(df)
Python

输出结果:

      name  age  score
0      tom   20    170
1    jerry   22    180
2   mickey   18    190
3   donald   19    184
Python

方法二:使用map()方法

除了apply()方法外,我们还可以使用map()方法将一列中的所有值进行传递给一个字典,并将字典中的值作为新的值。例如,我们可以将所有学生的姓名替换为一个新的映射:

name_map = {'Tom': 'Matt', 'Jerry': 'Luke', 'Mickey': 'John', 'Donald': 'Kate'}
df['name'] = df['name'].map(name_map)

print(df)
Python

输出结果:

    name  age  score
0   Matt   20    170
1   Luke   22    180
2   John   18    190
3   Kate   19    184
Python

同样的,我们还可以使用map()方法将所有学生的成绩按照百分制转换为分数制:

score_map = {100: 'A+', 90: 'A', 80: 'B', 70: 'C', 60: 'D', 0: 'F'}
df['score'] = df['score'].map(score_map)

print(df)
Python

输出结果:

    name  age score
0   Matt   20     B
1   Luke   22     A
2   John   18    A+
3   Kate   19    A-
Python

方法三:使用iterrows()方法

除了上述两种方法外,我们还可以使用iterrows()方法遍历所有行,并对每一个元素进行修改。例如,我们可以将所有学生的年龄增加2岁:

for index, row in df.iterrows():
    df.at[index, 'age'] += 2

print(df)
Python

输出结果:

    name  age score
0   Matt   22     B
1   Luke   24     A
2   John   20    A+
3   Kate   21    A-
Python

总结

使用Pandas更改一列中的所有值有很多种方法,本文介绍了其中三种常用的方法:

  • 使用apply()方法,将一列中的所有值传递给一个函数,并将函数的返回值作为新的值。
  • 使用map()方法,将一列中的所有值传递给一个字典,并将字典中的值作为新的值。
  • 使用iterrows()方法,遍历所有行,并对每一个元素进行修改。

在实际应用中,我们可以根据具体的需求选择不同的方法。掌握这些方法,可以帮助我们更加高效地处理数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册