跳到主要内容

Pandas 列操作

Pandas 是一个强大的数据处理库,广泛用于数据分析和数据科学领域。在数据处理过程中,列操作是最常见的任务之一。无论是选择特定的列、添加新列、删除不需要的列,还是对列进行重命名,Pandas 都提供了简单而强大的工具来完成这些任务。

本文将逐步介绍如何在 Pandas 中进行列操作,并通过实际案例展示这些操作的应用场景。

1. 选择列

在 Pandas 中,选择列是最基本的操作之一。你可以通过列名来选择单列或多列。

选择单列

python
import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)

# 选择 'Name' 列
name_column = df['Name']
print(name_column)

输出:

0      Alice
1 Bob
2 Charlie
Name: Name, dtype: object

选择多列

python
# 选择 'Name' 和 'Age' 列
name_age_columns = df[['Name', 'Age']]
print(name_age_columns)

输出:

      Name  Age
0 Alice 25
1 Bob 30
2 Charlie 35

2. 添加列

你可以通过多种方式向 DataFrame 中添加新列。最常见的方式是直接赋值给一个新列名。

添加新列

python
# 添加一个新列 'Salary'
df['Salary'] = [70000, 80000, 90000]
print(df)

输出:

      Name  Age         City  Salary
0 Alice 25 New York 70000
1 Bob 30 Los Angeles 80000
2 Charlie 35 Chicago 90000

基于现有列计算新列

python
# 添加一个新列 'Age_in_10_years',基于 'Age' 列计算
df['Age_in_10_years'] = df['Age'] + 10
print(df)

输出:

      Name  Age         City  Salary  Age_in_10_years
0 Alice 25 New York 70000 35
1 Bob 30 Los Angeles 80000 40
2 Charlie 35 Chicago 90000 45

3. 删除列

你可以使用 drop 方法来删除不需要的列。

删除单列

python
# 删除 'Salary' 列
df = df.drop('Salary', axis=1)
print(df)

输出:

      Name  Age         City  Age_in_10_years
0 Alice 25 New York 35
1 Bob 30 Los Angeles 40
2 Charlie 35 Chicago 45

删除多列

python
# 删除 'Age' 和 'Age_in_10_years' 列
df = df.drop(['Age', 'Age_in_10_years'], axis=1)
print(df)

输出:

      Name         City
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago

4. 重命名列

你可以使用 rename 方法来重命名列。

重命名单列

python
# 将 'Name' 列重命名为 'Full Name'
df = df.rename(columns={'Name': 'Full Name'})
print(df)

输出:

  Full Name         City
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago

重命名多列

python
# 将 'Full Name' 和 'City' 列重命名为 'Name' 和 'Location'
df = df.rename(columns={'Full Name': 'Name', 'City': 'Location'})
print(df)

输出:

      Name    Location
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago

5. 列数据变换

你可以对列中的数据进行各种变换操作,例如应用函数、条件筛选等。

应用函数

python
# 将 'Name' 列中的所有名字转换为大写
df['Name'] = df['Name'].str.upper()
print(df)

输出:

      Name    Location
0 ALICE New York
1 BOB Los Angeles
2 CHARLIE Chicago

条件筛选

python
# 创建一个新列 'Is_Adult',如果年龄大于等于 18 则为 True,否则为 False
df['Is_Adult'] = df['Age'] >= 18
print(df)

输出:

      Name  Age         City  Is_Adult
0 ALICE 25 New York True
1 BOB 30 Los Angeles True
2 CHARLIE 35 Chicago True

6. 实际案例

假设你有一个包含员工信息的 DataFrame,你需要进行以下操作:

  1. 选择员工的姓名和工资列。
  2. 添加一个新列,表示员工的奖金(工资的 10%)。
  3. 删除不需要的列。
  4. 重命名列以便更好地理解。
python
# 创建示例 DataFrame
data = {'Employee_Name': ['Alice', 'Bob', 'Charlie'],
'Salary': [70000, 80000, 90000],
'Department': ['HR', 'Engineering', 'Finance']}
df = pd.DataFrame(data)

# 选择 'Employee_Name' 和 'Salary' 列
df_selected = df[['Employee_Name', 'Salary']]

# 添加 'Bonus' 列
df_selected['Bonus'] = df_selected['Salary'] * 0.1

# 删除 'Salary' 列
df_selected = df_selected.drop('Salary', axis=1)

# 重命名列
df_selected = df_selected.rename(columns={'Employee_Name': 'Name', 'Bonus': 'Yearly_Bonus'})

print(df_selected)

输出:

      Name  Yearly_Bonus
0 Alice 7000.0
1 Bob 8000.0
2 Charlie 9000.0

总结

在本文中,我们介绍了如何在 Pandas 中进行列操作,包括选择列、添加列、删除列、重命名列以及列数据变换。这些操作是数据处理中的基础,掌握它们将帮助你更高效地处理和分析数据。

附加资源与练习

  • 练习 1:创建一个包含学生信息的 DataFrame,包含姓名、年龄、成绩三列。尝试添加一个新列,表示学生是否及格(成绩 >= 60)。
  • 练习 2:选择一个包含多列的 DataFrame,尝试删除其中的某些列,并重命名剩余的列。

通过不断练习,你将更加熟练地掌握 Pandas 的列操作技巧。