在 Pandas 库中,DataFrame
是一个非常重要的数据结构,用于存储和处理二维数据。它可以看作是一个表格,类似于 Excel 表格或数据库中的表,具有行和列。
1. DataFrame
基本介绍
DataFrame
是一个 表格型数据结构,它有以下特点:
- 行和列:每一行代表一个样本,每一列代表一个特征或属性。
- 异构数据类型:每一列可以包含不同的数据类型,如数值、字符串、布尔值等。
- 轴标签:每一行和每一列都有一个标签,行标签(
index
)和列标签(columns
)。
2. 创建 DataFrame
可以通过多种方式创建 DataFrame
,最常见的方式包括从字典、列表或其他 DataFrame
创建。
从字典创建 DataFrame
import pandas as pd
# 字典形式的数据
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [24, 27, 22],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
输出:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
从列表创建 DataFrame
import pandas as pd
# 列表形式的数据
data = [['Alice', 24, 'New York'], ['Bob', 27, 'Los Angeles'], ['Charlie', 22, 'Chicago']]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
输出:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
从 NumPy 数组创建 DataFrame
import pandas as pd
import numpy as np
# 使用 NumPy 数组创建 DataFrame
data = np.array([['Alice', 24, 'New York'], ['Bob', 27, 'Los Angeles'], ['Charlie', 22, 'Chicago']])
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
输出:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3. 访问 DataFrame
的数据
访问列
可以通过列标签访问 DataFrame
的列:
# 访问单列
print(df['Name'])
# 输出:
# 0 Alice
# 1 Bob
# 2 Charlie
# Name: Name, dtype: object
访问多列
# 访问多列
print(df[['Name', 'City']])
# 输出:
# Name City
# 0 Alice New York
# 1 Bob Los Angeles
# 2 Charlie Chicago
访问行
可以使用 .loc[]
或 .iloc[]
来访问特定的行。
loc[]
:通过标签访问行或列。iloc[]
:通过位置(索引)访问行或列。
# 通过标签访问第 1 行数据
print(df.loc[0])
# 通过位置访问第 1 行数据
print(df.iloc[0])
输出:
# 通过标签访问
Name Alice
Age 24
City New York
Name: 0, dtype: object
# 通过位置访问
Name Alice
Age 24
City New York
Name: 0, dtype: object
访问指定行和列的交集
# 访问第 1 行,第 2 列的值
print(df.iloc[0, 1]) # 输出:24
4. 修改 DataFrame
的数据
修改某一列的数据
df['Age'] = [25, 28, 23] # 更新 'Age' 列的数据
print(df)
输出:
Name Age City
0 Alice 25 New York
1 Bob 28 Los Angeles
2 Charlie 23 Chicago
修改某一行的数据
df.loc[1] = ['Bob', 30, 'San Francisco'] # 更新第二行的数据
print(df)
输出:
Name Age City
0 Alice 25 New York
1 Bob 30 San Francisco
2 Charlie 23 Chicago
5. 数据操作
选择特定的行
# 选择 Age 大于 24 的行
print(df[df['Age'] > 24])
输出:
Name Age City
1 Bob 30 San Francisco
排序数据
# 按 Age 列排序
df_sorted = df.sort_values(by='Age', ascending=False)
print(df_sorted)
输出:
Name Age City
1 Bob 30 San Francisco
0 Alice 25 New York
2 Charlie 23 Chicago
删除列
# 删除 'City' 列
df.drop('City', axis=1, inplace=True)
print(df)
输出:
Name Age
0 Alice 25
1 Bob 30
2 Charlie 23
删除行
# 删除第 1 行
df.drop(0, axis=0, inplace=True)
print(df)
输出:
Name Age
1 Bob 30
2 Charlie 23
6. 聚合与分组
Pandas 提供了强大的分组和聚合功能。比如,可以根据某个列进行分组,然后进行聚合计算。
# 按 Age 列分组并计算每组的最大 Age
df_grouped = df.groupby('Age').max()
print(df_grouped)
输出:
Name City
Age
23 Charlie Chicago
30 Bob San Francisco
7. 处理缺失数据
Pandas 提供了多种处理缺失数据的方法,例如使用 NaN
表示缺失数据。
import numpy as np
# 插入缺失值
df.loc[0, 'Age'] = np.nan
# 检查缺失数据
print(df.isnull())
# 填充缺失数据
df['Age'].fillna(df['Age'].mean(), inplace=True)
print(df)
总结
DataFrame
是 Pandas 中的核心数据结构,它能够高效地处理和分析大量的二维数据。通过使用 DataFrame
,你可以:
- 创建、修改、访问 数据;
- 排序、筛选、分组 数据;
- 处理缺失数据;
- 进行统计计算 等。
Pandas 提供了非常丰富的数据操作功能,它使得数据分析变得更加高效和便捷。如果你对 DataFrame
有更多的需求,可以通过查阅 Pandas 官方文档进一步了解其强大功能。
发表回复