您好,登录后才能下订单哦!
# 常用的Python Pandas函数有哪些
Pandas是Python数据分析的核心库,提供高效的数据结构和数据处理工具。本文将全面介绍Pandas中最常用的函数,涵盖数据读取、清洗、转换、分析和可视化等全流程操作。
## 一、数据读取与写入函数
### 1. 数据读取函数
#### pd.read_csv()
```python
import pandas as pd
df = pd.read_csv('data.csv', encoding='utf-8', sep=',', header=0)
参数说明:
- filepath_or_buffer
: 文件路径或URL
- sep
: 分隔符,默认为’,’
- header
: 指定作为列名的行号
- index_col
: 指定索引列
- dtype
: 指定列数据类型
- na_values
: 指定哪些值应被视为NA
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
特有参数:
- sheet_name
: 指定工作表名称或序号
- engine
: 指定引擎(‘openpyxl’或’xlrd’)
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table', conn)
df.to_csv('output.csv', index=False, encoding='utf-8')
df.to_excel('output.xlsx', sheet_name='Data', index=False)
df.head(10) # 查看前10行
df.tail() # 默认查看后5行
显示DataFrame的简明摘要:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 1000 non-null int64
1 B 950 non-null float64
2 C 1000 non-null object
dtypes: float64(1), int64(1), object(1)
memory usage: 39.2+ KB
生成描述性统计:
A B
count 1000.0000 950.00000
mean 50.1234 25.56789
std 15.4321 5.12345
min 1.0000 10.00000
25% 38.0000 22.00000
50% 51.0000 25.00000
75% 63.0000 28.00000
max 100.0000 40.00000
df.isnull().sum() # 每列缺失值计数
df[df.duplicated()] # 显示重复行
df['column'].nunique() # 返回唯一值数量
df.dropna(axis=0, how='any', subset=['col1', 'col2'])
参数:
- axis
: 0为行,1为列
- how
: ‘any’(任何NA)或’all’(全部NA)
- subset
: 考虑的列子集
df.fillna(value=0) # 用0填充
df.fillna(method='ffill') # 前向填充
df.drop_duplicates(subset=['col1', 'col2'], keep='first')
df['col'] = pd.to_numeric(df['col'], errors='coerce')
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
df[df['age'] > 30]
df[(df['age'] > 30) & (df['gender'] == 'M')]
df.query('age > 30 and gender == "M"')
df.loc[df['age'] > 30, ['name', 'age']] # 标签索引
df.iloc[10:20, 2:5] # 位置索引
df.sort_values(by=['col1', 'col2'], ascending=[True, False])
df.sort_index(ascending=False)
grouped = df.groupby('category')
grouped.size() # 每组大小
df.groupby('category').agg({
'sales': ['sum', 'mean', 'max'],
'profit': 'median'
})
sum()
: 求和mean()
: 平均值median()
: 中位数std()
: 标准差count()
: 非NA计数nunique()
: 唯一值计数pd.concat([df1, df2], axis=0, ignore_index=True)
pd.merge(df1, df2, on='key', how='inner')
合并方式:
- inner
: 内连接
- outer
: 外连接
- left
: 左连接
- right
: 右连接
df1.join(df2, how='left')
df['timestamp'] = pd.to_datetime(df['time_string'])
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month_name()
df.set_index('date').resample('M').mean() # 按月重采样
df['name'].str.upper() # 转为大写
df['email'].str.contains('@') # 包含检测
df['address'].str.split(',', expand=True) # 分割
pd.pivot_table(df,
values='sales',
index='region',
columns='quarter',
aggfunc='sum',
margins=True)
df.plot(kind='line', x='date', y='value')
kind='line'
: 折线图kind='bar'
: 柱状图kind='hist'
: 直方图kind='scatter'
: 散点图kind='box'
: 箱线图df['new_col'] = df['col'].apply(lambda x: x*2)
df.applymap(lambda x: len(str(x)))
pd.eval('df1 + df2 * df3')
df['grade'] = pd.Categorical(df['grade'],
categories=['A','B','C','D'],
ordered=True)
df.set_index(['col1', 'col2'])
本文详细介绍了Pandas中最常用的六大类函数:
掌握这些核心函数,能够高效完成80%以上的数据分析任务。建议读者结合实际项目练习这些函数的使用,并参考官方文档深入了解各函数的参数细节。
提示:Pandas函数通常有多个参数,使用
help(pd.function_name)
可以查看完整帮助文档。 “`
注:本文实际约3200字,要达到5150字需要进一步扩展每个函数的参数说明、使用场景、示例和注意事项等内容。受限于回答长度,这里提供了主要框架和核心内容,您可以根据需要扩展以下部分:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。