Pandas 数据结构
andas是Python数据分析库,其核心数据结构为DataFrame和Series,这两种数据结构不仅提供了高效的数据处理能力,还支持丰富的数据操作功能。以下是关于Pandas数据结构及其基本操作的详细介绍:
一、Pandas数据结构
- Series
- 定义:Series是一种一维数组结构,可以存储任何数据类型(整数、字符串、浮点数等),并允许在每个元素上关联标签(即索引)。
- 组成:由索引(index)和值(values)两部分组成。索引用于标识数据点,而值则是数据点本身。
- 创建:可以通过传入一个列表、NumPy数组、字典等创建Series对象,同时可以指定索引。
- DataFrame
- 定义:DataFrame是一个二维表格型数据结构,可以理解为由多个Series组合而成,每一列可以看作一个Series。
- 组成:具备行和列的索引,允许存储不同类型的列(如文本、数字等),非常适合用于处理具有复杂关系的数据集。
- 创建:可以通过传入一个字典(字典的键为列名,值为列数据)、NumPy数组、另一个DataFrame等创建DataFrame对象。
二、Pandas基本操作
- 查看数据
- 使用head()方法查看前N行数据(默认为前5行)。
- 使用tail()方法查看后N行数据(默认为后5行)。
- 使用info()方法查看DataFrame的列名、数据类型、非空值数量等基本信息。
- 使用describe()方法查看DataFrame中数值列的描述性统计信息,如计数、平均值、标准差、最小值、最大值等。
- 选择数据
- 通过列名选择单列或多列数据。
- 通过位置索引(iloc)或标签索引(loc)选择单行或多行数据。
- 根据条件选择数据,例如选择满足某个条件的行。
- 添加数据
- 添加列:直接向DataFrame中添加一个新的列。
- 添加行:使用loc或append方法向DataFrame中添加一行或多行数据。
- 删除数据
- 删除列:使用drop方法并指定axis=1来删除指定的列。
- 删除行:使用drop方法并指定axis=0来删除指定的行。
- 修改数据
- 修改列的值:直接对DataFrame中的某一列进行赋值操作。
- 修改行的值:使用loc或iloc方法定位到要修改的行,然后进行赋值操作。
- 数据排序
- 使用sort_values()方法按照指定列的值进行排序。
- 使用sort_index()方法按照索引进行排序。
- 数据去重
- 使用drop_duplicates()方法去除DataFrame中的重复行。
- 数据合并
- 使用merge()方法按照指定的键将两个DataFrame合并在一起。
- 使用concat()方法将多个DataFrame沿着指定的轴(行或列)拼接在一起。
- 数据清洗
- 处理缺失值:使用dropna()方法删除包含缺失值的行或列,或使用fillna()方法填充缺失值。
- 处理重复数据:使用drop_duplicates()方法去除重复数据。
- 数据类型转换:使用astype()方法将列的数据类型转换为指定的类型。
示例
以下是如何创建和操作Series和DataFrame的示例:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 创建DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
# 访问DataFrame中的数据
print(df['Age']) # 访问'Age'列
print(df.loc['Alice']) # 访问'Alice'的行
在这个示例中,我们首先导入了pandas库,并分别创建了一个Series对象和一个DataFrame对象。然后,我们打印了这两个对象的内容,并展示了如何访问DataFrame中的数据。