您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Pandas函数的应用方式
## 引言
Pandas是Python数据分析的核心库,提供了高效便捷的数据结构和数据分析工具。本文将深入探讨Pandas函数的应用方式,帮助读者掌握数据处理的关键技巧。
## 一、Pandas基础函数
### 1. 数据读取与写入
```python
import pandas as pd
# 读取CSV文件
df = pd.read_csv('data.csv')
# 写入Excel文件
df.to_excel('output.xlsx', index=False)
常用参数说明:
- header
:指定表头行
- encoding
:文件编码格式
- na_values
:指定缺失值标识
函数 | 说明 | 示例 |
---|---|---|
head() |
查看前n行 | df.head(5) |
tail() |
查看后n行 | df.tail(3) |
info() |
数据摘要 | df.info() |
describe() |
统计描述 | df.describe() |
# 选择单列
df['column_name']
# 选择多列
df[['col1', 'col2']]
# 使用loc按标签选择
df.loc[row_indexer, column_indexer]
# 使用iloc按位置选择
df.iloc[row_position, column_position]
# 单条件过滤
df[df['age'] > 30]
# 多条件组合
df[(df['age'] > 30) & (df['gender'] == 'M')]
# 使用query方法
df.query("age > 30 and gender == 'M'")
# 检测缺失值
df.isnull().sum()
# 填充缺失值
df.fillna(value=0, inplace=True)
# 删除缺失值
df.dropna(axis=0, how='any')
# 类型转换
df['column'] = df['column'].astype('float')
# 重命名列
df.rename(columns={'old_name':'new_name'}, inplace=True)
# 值替换
df['gender'].replace({'M':'Male', 'F':'Female'}, inplace=True)
# 按值排序
df.sort_values(by='column', ascending=False)
# 按索引排序
df.sort_index()
# 去除重复值
df.drop_duplicates(subset=['col1', 'col2'])
# 单列分组
grouped = df.groupby('category')
# 多列分组
multi_group = df.groupby(['category', 'year'])
# 常用聚合函数
grouped['value'].agg(['mean', 'sum', 'count'])
# 自定义聚合函数
def my_agg(x):
return x.max() - x.min()
grouped.agg({'col1':'sum', 'col2':my_agg})
# 分组后应用多个函数
grouped['value'].agg([np.mean, np.std, np.median])
# 转换为datetime类型
df['date'] = pd.to_datetime(df['date_str'])
# 设置时间索引
df.set_index('date', inplace=True)
# 重采样
df.resample('M').mean() # 按月重采样
# 滑动窗口
df.rolling(window=7).mean() # 7天移动平均
# 时间偏移
df.shift(periods=1) # 数据向后移动一天
# 纵向合并
pd.concat([df1, df2], axis=0)
# 横向合并
pd.concat([df1, df2], axis=1)
# 数据库风格连接
pd.merge(left, right, on='key', how='inner')
# 多键合并
pd.merge(df1, df2, left_on=['key1','key2'], right_on=['keyA','keyB'])
# 索引合并
pd.merge(left, right, left_index=True, right_index=True)
# 非等值连接
pd.merge_asof(df1, df2, on='date', direction='nearest')
# 避免循环,使用向量化
df['new_col'] = df['col1'] * df['col2']
# 使用apply的优化
df['col'].apply(lambda x: x*2 if x>0 else 0)
# 查看内存使用
df.memory_usage(deep=True)
# 优化数据类型
df['col'] = df['col'].astype('category')
# 分块处理大数据
chunksize = 10000
for chunk in pd.read_csv('large.csv', chunksize=chunksize):
process(chunk)
# 线图
df.plot.line(x='date', y='value')
# 柱状图
df.plot.bar(x='category', y='count')
# 直方图
df['age'].plot.hist(bins=20)
# 多子图
df.plot(subplots=True, layout=(2,2))
# 箱线图
df.boxplot(column='value', by='category')
# 散点矩阵图
pd.plotting.scatter_matrix(df[['col1','col2','col3']])
# 读取数据
sales = pd.read_csv('sales_data.csv')
# 按月统计销售额
monthly_sales = sales.groupby(
pd.Grouper(key='date', freq='M')
)['amount'].sum()
# 可视化
monthly_sales.plot(kind='bar')
# 计算用户留存率
user_retention = df.pivot_table(
index='signup_date',
columns='activity_date',
values='user_id',
aggfunc='nunique'
)
# 计算7日留存
user_retention['retention_rate'] = user_retention[day7] / user_retention[day0]
dask
库或分块处理category
类型describe()
和箱线图assert
语句验证假设groupby
与agg
组合apply
或transform
Pandas提供了丰富的数据处理函数,掌握这些函数的应用方式可以显著提高数据分析效率。建议读者在实际项目中多加练习,逐步掌握Pandas的高级用法。
函数类别 | 常用函数 |
---|---|
数据读取 | read_csv, read_excel, read_sql |
数据清洗 | dropna, fillna, replace |
数据转换 | astype, apply, map |
分组聚合 | groupby, pivot_table, crosstab |
时间序列 | to_datetime, resample, rolling |
数据合并 | merge, concat, join |
可视化 | plot, hist, boxplot |
”`
注:本文约2650字,详细介绍了Pandas各类函数的应用方式,包含代码示例、表格说明和实用技巧。实际使用时可根据需要调整代码细节。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。