您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# DataFrame操作方法有哪些
## 目录
1. [DataFrame基础概念](#1-dataframe基础概念)
2. [创建DataFrame](#2-创建dataframe)
3. [数据查看与检查](#3-数据查看与检查)
4. [数据选择与过滤](#4-数据选择与过滤)
5. [数据处理与清洗](#5-数据处理与清洗)
6. [数据分组与聚合](#6-数据分组与聚合)
7. [数据合并与连接](#7-数据合并与连接)
8. [时间序列处理](#8-时间序列处理)
9. [性能优化技巧](#9-性能优化技巧)
10. [总结](#10-总结)
---
## 1. DataFrame基础概念
DataFrame是Pandas库中最核心的数据结构,具有以下特点:
- 二维表格型数据结构(类似Excel表格)
- 行和列都有标签索引
- 列可以是不同的数据类型
- 大小可变(可动态增删行列)
- 提供大量数据操作方法
```python
import pandas as pd
import numpy as np
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['NY', 'LA', 'Chicago']
}
df = pd.DataFrame(data)
data = [
['Alice', 25, 'NY'],
['Bob', 30, 'LA'],
['Charlie', 35, 'Chicago']
]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
arr = np.random.rand(5, 3)
df = pd.DataFrame(arr, columns=['A', 'B', 'C'])
# CSV文件
df = pd.read_csv('data.csv')
# Excel文件
df = pd.read_excel('data.xlsx')
# JSON文件
df = pd.read_json('data.json')
df.head() # 查看前5行
df.tail(3) # 查看后3行
df.sample(2) # 随机查看2行
df.shape # 行列数
df.info() # 数据类型和内存使用
df.describe() # 数值列统计信息
df.index # 查看行索引
df.columns # 查看列名
df.reset_index() # 重置索引
df.set_index('Name') # 设置新索引
df['Name'] # 选择单列
df[['Name', 'Age']] # 选择多列
df.Name # 点号选择(不推荐)
df.loc[0] # 按标签选择
df.iloc[0] # 按位置选择
df[0:2] # 切片选择
df[df['Age'] > 30] # 简单条件
df[(df['Age'] > 25) & (df['City'] == 'NY')] # 多条件
df.query('Age > 25 and City == "NY"') # 使用query方法
df.loc[df['Age'] > 30, ['Name', 'City']] # 行列同时筛选
df.iloc[1:3, 0:2] # 位置索引
df.at[0, 'Name'] # 快速访问标量
df.isnull() # 检测缺失值
df.dropna() # 删除缺失值
df.fillna(0) # 填充缺失值
df.interpolate() # 插值填充
df.duplicated() # 检测重复行
df.drop_duplicates() # 删除重复行
df['Age'] = df['Age'].astype('float') # 类型转换
pd.to_numeric(df['Age']) # 转换为数值
pd.to_datetime(df['Date']) # 转换为日期
df['New'] = df['A'] + df['B'] # 新增列
df.drop('New', axis=1) # 删除列
df.rename(columns={'Old': 'New'}) # 重命名列
df.replace({'NY': 'New York'}) # 字典替换
df['Age'].replace(25, 26) # 值替换
df['City'].str.replace('NY', 'New York') # 字符串替换
grouped = df.groupby('City') # 单列分组
grouped = df.groupby(['City', 'Age']) # 多列分组
grouped.mean() # 平均值
grouped.sum() # 求和
grouped.size() # 计数
grouped.agg(['mean', 'sum', 'count']) # 多重聚合
def my_func(x):
return x.max() - x.min()
grouped.agg(my_func) # 自定义函数
pd.pivot_table(df, values='Age', index='City', columns='Gender', aggfunc='mean')
pd.concat([df1, df2]) # 简单合并
pd.concat([df1, df2], ignore_index=True) # 重置索引
pd.merge(df1, df2, on='key') # 单键合并
pd.merge(df1, df2, left_on='lkey', right_on='rkey') # 多键合并
pd.merge(df1, df2, how='inner') # 内连接
pd.merge(df1, df2, how='left') # 左连接
pd.merge(df1, df2, how='outer') # 全连接
df1.join(df2, how='left') # 索引连接
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
df.loc['2023-01'] # 按月选择
df.loc['2023-01-01':'2023-01-31'] # 按范围选择
df.resample('M').mean() # 按月重采样
df.resample('D').ffill() # 向前填充
df.rolling(window=7).mean() # 7天移动平均
df.expanding().mean() # 扩展窗口
# 避免循环,使用向量化
df['new'] = df['A'] * df['B'] + df['C']
df['col'] = df['col'].astype('category') # 分类数据
chunksize = 10000
for chunk in pd.read_csv('large.csv', chunksize=chunksize):
process(chunk)
df.eval('A + B - C', inplace=True) # 表达式求值
本文全面介绍了DataFrame的各类操作方法,包括: 1. 多种创建DataFrame的方式 2. 数据查看和基本信息获取 3. 灵活的数据选择和过滤技巧 4. 完整的数据清洗流程 5. 强大的分组聚合功能 6. 多种数据合并方法 7. 专业的时间序列处理 8. 实用的性能优化技巧
掌握这些方法后,您将能够高效地处理各种结构化数据任务。建议在实际项目中多加练习,结合具体需求灵活运用这些技术。
# 最后示例:完整数据处理流程
df = pd.read_csv('data.csv')
df = df.dropna()
df['date'] = pd.to_datetime(df['date'])
df = df[df['value'] > 0]
result = df.groupby('category')['value'].mean()
result.to_csv('result.csv')
提示:Pandas官方文档是深入学习的最佳资源,遇到问题时可以使用
help(pd.DataFrame.method)
查看详细说明。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。