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,你需要进行以下操作:
- 选择员工的姓名和工资列。
- 添加一个新列,表示员工的奖金(工资的 10%)。
- 删除不需要的列。
- 重命名列以便更好地理解。
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 的列操作技巧。