pandas 是 Python 中一个非常强大的数据处理库,它提供了大量的数据结构和数据分析工具,使得数据清洗、转换、分析、可视化等操作变得简单高效。以下是对 pandas 库的基本使用和常见功能的详细展开:
- 安装 pandas
首先,确保你的 Python 环境中已经安装了 pandas。如果没有,你可以通过 pip 安装:
bash
pip install pandas
- 导入 pandas
在 Python 脚本中,你需要导入 pandas:
python
import pandas as pd
- 读取数据
pandas 提供了多种读取数据的方法,比如从 CSV 文件、Excel 文件、数据库、SQL 查询结果等读取数据。
python
从 CSV 文件读取数据
df = pd.read_csv('data.csv')
从 Excel 文件读取数据
df = pd.read_excel('data.xlsx')
- 数据结构
pandas 的核心数据结构是 Series 和 DataFrame。
Series:一维数组,带有一个标签的数组。
DataFrame:二维表格型数据结构,可以存储多种类型的数据,并带有行标签和列标签。
python
创建一个简单的 Series
s = pd.Series([1, 2, 3, 4, 5], name='my_series')
创建一个简单的 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
- 数据选择和索引
你可以通过列名或行标签来选择和操作数据。
python
选择单列
names = df['Name']
选择多列
subset = df[['Name', 'Age']]
通过行标签选择
row = df.loc[0] # 选择第一行
通过整数位置选择
row_by_position = df.iloc[0] # 选择第一行(基于位置)
- 数据清洗
pandas 提供了很多函数用于数据清洗,如处理缺失值、去重、类型转换等。
python
处理缺失值
df.fillna(0) # 将缺失值填充为 0
df.dropna() # 删除含有缺失值的行
数据类型转换
df['Age'] = df['Age'].astype(int) # 将 'Age' 列转换为整数类型
去重
unique_values = df['Name'].unique() # 获取 'Name' 列的唯一值
- 数据聚合和分组
你可以使用 groupby 方法对数据进行分组,并使用聚合函数对每组数据进行计算。
python
按照 'Age' 列进行分组,并计算每组的平均 'Age'
grouped = df.groupby('Age').mean()
- 数据合并和连接
你可以使用 merge、concat 等方法将多个 DataFrame 合并或连接起来。
python
基于列名合并两个 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
merged_df = pd.merge(df1, df2, on='key')
- 数据排序
你可以使用 sort_values 或 sort_index 方法对数据进行排序。
python
按照 'Age' 列进行排序
sorted_df = df.sort_values('Age')
按照行标签进行排序
sorted_df_by_index = df.sort_index()
- 数据可视化
虽然 pandas 本身并不直接提供数据可视化功能,但它与 matplotlib、seaborn 等库紧密集成,可以方便地创建图表。
python
import matplotlib.pyplot as plt
绘制 'Age' 列的直方图
df['Age'].plot(kind='hist', bins=10)
plt.show()
- 保存到文件
处理完数据后,你可以将 DataFrame 保存到文件,如 CSV、Excel 等。
python
保存为 CSV 文件
df.to_csv('output.csv', index=False)