Pandas库
- 基本概念
- 读取数据
- 数据处理
- 数据输出
- 其他常用功能
pip install pandas
基本概念
-
数据结构
-
Series: 一维数据结构
import pandas as pd data = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print(data)
-
DataFrame: 二维数据结构
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35] } df = pd.DataFrame(data) print(df)
-
读取数据
-
从 CSV 文件读取数据
df = pd.read_csv('file.csv') print(df.head())
-
从 Excel 文件读取数据
df = pd.read_excel('file.xlsx', sheet_name='Sheet1') print(df.head())
-
从 SQL 查询读取数据
import sqlite3 conn = sqlite3.connect('database.db') df = pd.read_sql_query('SELECT * FROM table', conn) print(df.head())
数据处理
-
查看数据
-
查看前 5 行
print(df.head())
-
查看后 5 行
print(df.tail())
-
查看数据的简要信息
print(df.info())
-
查看数据的统计摘要
print(df.describe())
-
-
选择和过滤数据
-
按列选择
print(df['Name'])
-
按行选择
print(df.loc[0]) # 按标签 print(df.iloc[0]) # 按位置
-
条件过滤
filtered_df = df[df['Age'] > 30] print(filtered_df)
-
-
数据清洗
-
处理缺失值
df = df.dropna() # 删除含缺失值的行 df = df.fillna(0) # 将缺失值填充为 0
-
去重
df = df.drop_duplicates()
-
数据类型转换
df['Age'] = df['Age'].astype(float)
-
-
数据操作
-
添加列
df['Country'] = 'USA'
-
删除列
df = df.drop('Country', axis=1)
-
重命名列
df = df.rename(columns={'Name': 'Full Name'})
-
-
数据聚合
-
按组聚合
grouped_df = df.groupby('Country').agg({'Age': 'mean'}) print(grouped_df)
-
合并数据
df1 = pd.DataFrame({'ID': [1, 2], 'Value': ['A', 'B']}) df2 = pd.DataFrame({'ID': [1, 2], 'Score': [85, 90]}) merged_df = pd.merge(df1, df2, on='ID') print(merged_df)
-
拼接数据
df1 = pd.DataFrame({'Name': ['Alice', 'Bob']}) df2 = pd.DataFrame({'Name': ['Charlie', 'David']}) concatenated_df = pd.concat([df1, df2], ignore_index=True) print(concatenated_df)
-
-
数据排序
-
按列排序
sorted_df = df.sort_values(by='Age') print(sorted_df)
-
排序方向
sorted_df = df.sort_values(by='Age', ascending=False) print(sorted_df)
-
数据输出
-
保存为 CSV 文件
df.to_csv('output.csv', index=False)
-
保存为 Excel 文件
df.to_excel('output.xlsx', index=False)
其他常用功能
-
透视表
pivot_table = pd.pivot_table(df, values='Age', index='Country', aggfunc='mean') print(pivot_table)
-
时间序列
-
日期时间转换
df['Date'] = pd.to_datetime(df['Date'])
-
设置时间索引
df = df.set_index('Date')
-