跳到主要内容

Pandas DataFrame对象

介绍

Pandas是Python中一个强大的数据处理库,而DataFrame是Pandas中最常用的数据结构之一。DataFrame是一个二维的、大小可变的、可以包含异构类型数据的表格型数据结构。它类似于Excel表格或SQL表,但功能更加强大和灵活。

DataFrame由行和列组成,每一列可以有不同的数据类型(如整数、浮点数、字符串等)。每一行和每一列都有一个标签,可以通过这些标签来访问数据。

创建DataFrame

我们可以通过多种方式创建DataFrame,最常见的方式是从字典、列表或外部文件(如CSV文件)中创建。

从字典创建DataFrame

python
import pandas as pd

data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pd.DataFrame(data)
print(df)

输出:

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

在这个例子中,我们使用了一个字典来创建DataFrame。字典的键成为DataFrame的列名,而字典的值成为DataFrame中的数据。

从列表创建DataFrame

python
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]

df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)

输出:

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

在这个例子中,我们使用了一个列表来创建DataFrame,并通过columns参数指定了列名。

访问DataFrame中的数据

访问列

我们可以通过列名来访问DataFrame中的某一列。

python
print(df['Name'])

输出:

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

访问行

我们可以通过ilocloc来访问DataFrame中的某一行。

python
print(df.iloc[1])

输出:

Name            Bob
Age 30
City Los Angeles
Name: 1, dtype: object

访问特定单元格

我们可以通过ilocloc来访问DataFrame中的特定单元格。

python
print(df.iloc[1, 2])

输出:

Los Angeles

修改DataFrame

添加新列

我们可以通过赋值的方式向DataFrame中添加新列。

python
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

修改数据

我们可以通过赋值的方式修改DataFrame中的数据。

python
df.at[1, 'Age'] = 31
print(df)

输出:

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

实际应用场景

数据清洗

在实际的数据分析中,我们经常需要对数据进行清洗。例如,我们可能需要处理缺失值、删除重复数据或转换数据类型。

python
# 处理缺失值
df['Salary'].fillna(0, inplace=True)

# 删除重复数据
df.drop_duplicates(inplace=True)

# 转换数据类型
df['Age'] = df['Age'].astype(float)

数据分组与聚合

我们可以使用groupby方法对数据进行分组,并使用聚合函数(如summean等)对数据进行汇总。

python
grouped_df = df.groupby('City')['Salary'].mean()
print(grouped_df)

输出:

City
Chicago 90000.0
Los Angeles 80000.0
New York 70000.0
Name: Salary, dtype: float64

总结

DataFrame是Pandas中最常用的数据结构之一,它提供了强大的数据处理功能。通过本文,我们学习了如何创建DataFrame、访问和修改数据,以及如何在实际应用中使用DataFrame进行数据清洗和分组聚合。

附加资源与练习

  • 练习1:创建一个包含5行3列的DataFrame,列名分别为ABC,并尝试访问和修改其中的数据。
  • 练习2:从一个CSV文件中读取数据并创建DataFrame,然后对数据进行清洗和分组聚合操作。
提示

如果你想深入学习Pandas,可以参考Pandas官方文档