DataFrame操作方法有哪些

发布时间:2021-12-27 10:34:32 作者:iii
来源:亿速云 阅读:530
# 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

2. 创建DataFrame

2.1 从字典创建

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['NY', 'LA', 'Chicago']
}
df = pd.DataFrame(data)

2.2 从列表创建

data = [
    ['Alice', 25, 'NY'],
    ['Bob', 30, 'LA'],
    ['Charlie', 35, 'Chicago']
]
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])

2.3 从Numpy数组创建

arr = np.random.rand(5, 3)
df = pd.DataFrame(arr, columns=['A', 'B', 'C'])

2.4 从文件读取

# CSV文件
df = pd.read_csv('data.csv')

# Excel文件
df = pd.read_excel('data.xlsx')

# JSON文件
df = pd.read_json('data.json')

3. 数据查看与检查

3.1 查看数据

df.head()       # 查看前5行
df.tail(3)      # 查看后3行
df.sample(2)    # 随机查看2行

3.2 基本信息

df.shape        # 行列数
df.info()       # 数据类型和内存使用
df.describe()   # 数值列统计信息

3.3 索引操作

df.index        # 查看行索引
df.columns      # 查看列名
df.reset_index() # 重置索引
df.set_index('Name') # 设置新索引

4. 数据选择与过滤

4.1 列选择

df['Name']          # 选择单列
df[['Name', 'Age']] # 选择多列
df.Name             # 点号选择(不推荐)

4.2 行选择

df.loc[0]           # 按标签选择
df.iloc[0]          # 按位置选择
df[0:2]             # 切片选择

4.3 条件过滤

df[df['Age'] > 30]                  # 简单条件
df[(df['Age'] > 25) & (df['City'] == 'NY')]  # 多条件
df.query('Age > 25 and City == "NY"') # 使用query方法

4.4 高级选择

df.loc[df['Age'] > 30, ['Name', 'City']]  # 行列同时筛选
df.iloc[1:3, 0:2]                         # 位置索引
df.at[0, 'Name']                          # 快速访问标量

5. 数据处理与清洗

5.1 缺失值处理

df.isnull()         # 检测缺失值
df.dropna()         # 删除缺失值
df.fillna(0)        # 填充缺失值
df.interpolate()    # 插值填充

5.2 重复值处理

df.duplicated()     # 检测重复行
df.drop_duplicates() # 删除重复行

5.3 数据类型转换

df['Age'] = df['Age'].astype('float')  # 类型转换
pd.to_numeric(df['Age'])               # 转换为数值
pd.to_datetime(df['Date'])            # 转换为日期

5.4 列操作

df['New'] = df['A'] + df['B']         # 新增列
df.drop('New', axis=1)                # 删除列
df.rename(columns={'Old': 'New'})     # 重命名列

5.5 值替换

df.replace({'NY': 'New York'})        # 字典替换
df['Age'].replace(25, 26)             # 值替换
df['City'].str.replace('NY', 'New York') # 字符串替换

6. 数据分组与聚合

6.1 基本分组

grouped = df.groupby('City')          # 单列分组
grouped = df.groupby(['City', 'Age']) # 多列分组

6.2 聚合函数

grouped.mean()       # 平均值
grouped.sum()        # 求和
grouped.size()       # 计数
grouped.agg(['mean', 'sum', 'count']) # 多重聚合

6.3 自定义聚合

def my_func(x):
    return x.max() - x.min()

grouped.agg(my_func)  # 自定义函数

6.4 透视表

pd.pivot_table(df, values='Age', index='City', columns='Gender', aggfunc='mean')

7. 数据合并与连接

7.1 纵向合并

pd.concat([df1, df2])                # 简单合并
pd.concat([df1, df2], ignore_index=True) # 重置索引

7.2 横向合并

pd.merge(df1, df2, on='key')        # 单键合并
pd.merge(df1, df2, left_on='lkey', right_on='rkey') # 多键合并

7.3 连接方式

pd.merge(df1, df2, how='inner')     # 内连接
pd.merge(df1, df2, how='left')      # 左连接
pd.merge(df1, df2, how='outer')     # 全连接

7.4 索引合并

df1.join(df2, how='left')           # 索引连接

8. 时间序列处理

8.1 时间转换

df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)

8.2 时间索引

df.loc['2023-01']                   # 按月选择
df.loc['2023-01-01':'2023-01-31']   # 按范围选择

8.3 重采样

df.resample('M').mean()             # 按月重采样
df.resample('D').ffill()            # 向前填充

8.4 滑动窗口

df.rolling(window=7).mean()         # 7天移动平均
df.expanding().mean()               # 扩展窗口

9. 性能优化技巧

9.1 向量化操作

# 避免循环,使用向量化
df['new'] = df['A'] * df['B'] + df['C']

9.2 使用高效数据类型

df['col'] = df['col'].astype('category')  # 分类数据

9.3 分块处理大数据

chunksize = 10000
for chunk in pd.read_csv('large.csv', chunksize=chunksize):
    process(chunk)

9.4 使用eval方法

df.eval('A + B - C', inplace=True)  # 表达式求值

10. 总结

本文全面介绍了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)查看详细说明。 “`

推荐阅读:
  1. Pandas:DataFrame对象的基础操作方法
  2. pandas数据预处理之dataframe的groupby操作方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

dataframe

上一篇:Golang函数式选项模式怎么实现

下一篇:php 如何一次实现多个照片上传

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》