Pandas 是一个用于数据操作和分析的强大 Python 库。它提供了灵活的数据结构(如 Series
和 DataFrame
),使得数据清洗、分析和处理变得更加便捷。以下是 Pandas 数据分析的基础知识,包括如何创建、操作和分析数据。
首先,你需要安装 Pandas。如果你还没有安装,可以通过以下命令进行安装:
pip install pandas
Pandas 主要有两种数据结构:
Series
: 一维数据结构,类似于 Python 的列表或字典。DataFrame
: 二维数据结构,类似于电子表格或 SQL 表。Series
是一种类似于一维数组的结构,具有索引和数据。
import pandas as pd
# 创建一个简单的 Series
s = pd.Series([1, 3, 5, 7, 9])
print(s)
# 指定索引创建 Series
s = pd.Series([1, 3, 5], index=['a', 'b', 'c'])
print(s)
DataFrame
是一种二维数据结构,类似于表格。你可以从字典、列表或读取文件(如 CSV)来创建 DataFrame
。
# 从字典创建 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
# 从列表创建 DataFrame
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
查看 DataFrame
的基本信息:
# 查看前几行数据
print(df.head()) # 默认显示前 5 行
# 查看数据的基本信息
print(df.info())
# 查看统计信息
print(df.describe())
# 查看列名
print(df.columns)
你可以选择 DataFrame
中的某一列或几列,也可以选择特定的行。
# 选择一列
print(df['Name'])
# 选择多列
print(df[['Name', 'City']])
# 选择特定行
print(df.iloc[0]) # 使用行索引
print(df.loc[0]) # 使用标签(对于默认索引标签与 iloc 一致)
Pandas 允许你根据条件筛选数据:
# 筛选出年龄大于 30 的人
filtered_df = df[df['Age'] > 30]
print(filtered_df)
你可以向 DataFrame
添加新列或删除不需要的列。
# 添加新列
df['Country'] = ['USA', 'USA', 'USA']
print(df)
# 删除列
df = df.drop(columns=['Country'])
print(df)
可以对 DataFrame
中的数据进行修改:
# 修改单元格的值
df.at[0, 'Age'] = 26
print(df)
# 批量修改
df['Age'] = df['Age'] + 1
print(df)
数据中可能存在缺失值,Pandas 提供了处理这些缺失值的方法。
# 检查缺失值
print(df.isnull())
# 删除含有缺失值的行
df = df.dropna()
print(df)
# 用特定值填充缺失值
df['Age'] = df['Age'].fillna(df['Age'].mean())
print(df)
Pandas 提供了强大的数据分组功能,可以根据某一列的值对数据进行分组,并对分组后的数据进行聚合计算。
# 按城市分组并计算平均年龄
grouped = df.groupby('City')['Age'].mean()
print(grouped)
你可以对 DataFrame
进行排序。
# 按年龄排序
sorted_df = df.sort_values(by='Age')
print(sorted_df)
Pandas 支持从多种格式读取数据并将数据导出到多种格式。
# 从 CSV 文件读取数据
df = pd.read_csv('data.csv')
# 从 Excel 文件读取数据
df = pd.read_excel('data.xlsx')
# 从 SQL 数据库读取数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query('SELECT * FROM table_name', conn)
# 导出到 CSV 文件
df.to_csv('output.csv', index=False)
# 导出到 Excel 文件
df.to_excel('output.xlsx', index=False)
# 导出到 SQL 数据库
df.to_sql('table_name', conn, if_exists='replace', index=False)
Pandas 是一个功能强大的数据分析工具,通过其灵活的数据结构和丰富的操作方法,你可以轻松处理和分析大规模数据。掌握 Pandas 的基础知识,如数据创建、选择、处理、分组和导入导出操作,能够让你在数据分析工作中得心应手。