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')