首页 > 其他分享 >DataFrame的基本操作

DataFrame的基本操作

时间:2024-12-26 13:30:04浏览次数:4  
标签:Name df Age DataFrame pd print 基本操作

在Python中,使用pandas库操作DataFrame是非常常见的,pandas提供了丰富的函数和方法来处理表格数据。下面是一些常见的DataFrame操作示例:

1. 创建 DataFrame

import pandas as pd

# 从字典创建 DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 35, 40],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)

print(df)

2. 查看 DataFrame 基本信息

# 查看前几行
print(df.head())  # 默认查看前5行,可以传参数指定查看的行数

# 查看后几行
print(df.tail())  # 默认查看后5行

# 查看 DataFrame 的维度 (行数和列数)
print(df.shape)

# 查看列名
print(df.columns)

# 查看数据类型
print(df.dtypes)

# 获取描述性统计信息
print(df.describe())

# 获取特定列的数据
print(df['Name'])

3. 访问和选择数据

选择单列

# 选择某一列
names = df['Name']

选择多列

# 选择多列
subset = df[['Name', 'Age']]

选择特定行(基于索引)

# 通过行索引选择单行
row_0 = df.iloc[0]  # 选择第0行

# 通过行标签选择单行
row_0_by_label = df.loc[0]  # 如果行有标签,使用loc根据标签获取

选择多行(基于索引)

# 选择多个连续的行
rows = df.iloc[0:3]  # 选择第0行到第2行

# 选择多个不连续的行
rows = df.iloc[[0, 2, 3]]  # 选择第0、2、3行

条件筛选

# 条件筛选:选择 Age 大于 30 的行
filtered = df[df['Age'] > 30]

4. 添加、修改和删除列

添加列

# 添加一列
df['Salary'] = [50000, 60000, 70000, 80000]

# 或者通过 apply 方法添加列
df['Age_in_10_years'] = df['Age'] + 10

修改列

# 修改某一列的值
df['Age'] = df['Age'] + 1  # 所有人的年龄都加1

删除列

# 删除某一列
df.drop('Salary', axis=1, inplace=True)  # axis=1 表示删除列,axis=0 删除行

5. 排序数据

按列排序

# 按 Age 列升序排序
df_sorted = df.sort_values(by='Age', ascending=True)

# 按多个列排序
df_sorted_multiple = df.sort_values(by=['Age', 'Name'], ascending=[True, False])

6. 处理缺失值

检查缺失值

# 检查每一列的缺失值数量
print(df.isnull().sum())

# 检查是否存在缺失值
print(df.isnull().values.any())

填充缺失值

# 使用某个常数填充缺失值
df['Age'].fillna(30, inplace=True)

# 使用前一个有效值填充缺失值
df['Age'].fillna(method='ffill', inplace=True)

删除缺失值

# 删除含有缺失值的行
df.dropna(inplace=True)

# 删除含有缺失值的列
df.dropna(axis=1, inplace=True)

7. 合并 DataFrame

合并(连接)数据

# 行连接 (垂直合并)
df2 = pd.DataFrame({
    'Name': ['Eve', 'Frank'],
    'Age': [45, 50],
    'City': ['San Francisco', 'Dallas']
})
df_combined = pd.concat([df, df2], axis=0, ignore_index=True)

# 列连接 (水平合并)
df3 = pd.DataFrame({
    'Country': ['USA', 'USA', 'USA', 'USA'],
    'Job': ['Engineer', 'Doctor', 'Artist', 'Teacher']
})
df_combined_columns = pd.concat([df, df3], axis=1)

基于列合并

# 使用 merge 方法合并两个 DataFrame,类似于 SQL 的 JOIN
df_left = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df_right = pd.DataFrame({'Name': ['Alice', 'Bob'], 'City': ['New York', 'Los Angeles']})

df_merged = pd.merge(df_left, df_right, on='Name')

8. 分组操作

按列分组

# 按照 City 列分组并计算每组的平均值
grouped = df.groupby('City').mean()

# 按多个列分组
grouped_multiple = df.groupby(['City', 'Age']).mean()

9. 应用函数

对列或行应用函数

# 对列应用函数
df['Age_squared'] = df['Age'].apply(lambda x: x**2)

# 对行应用函数
df['Age_and_Salary'] = df.apply(lambda row: row['Age'] + row['Salary'], axis=1)

使用 mapapplymap 操作

# 使用 map 对单列进行映射操作
df['City'] = df['City'].map({'New York': 'NY', 'Los Angeles': 'LA'})

# 使用 applymap 对整个 DataFrame 进行操作
df = df.applymap(str)  # 将所有值转换为字符串

10. 保存和读取数据

保存 DataFrame 到文件

# 保存为 CSV 文件
df.to_csv('data.csv', index=False)

# 保存为 Excel 文件
df.to_excel('data.xlsx', index=False)

从文件读取 DataFrame

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

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

11. 其他常用操作

DataFrame 转置

# 转置 DataFrame
df_transposed = df.T

重命名列

# 重命名列
df.rename(columns={'Name': 'Full Name', 'Age': 'Years'}, inplace=True)

这些是pandas常见的DataFrame操作。通过这些操作,你可以高效地清洗、处理和分析数据。如果你有更具体的需求,或者遇到问题,随时告诉我!

标签:Name,df,Age,DataFrame,pd,print,基本操作
From: https://www.cnblogs.com/HaibaraYuki/p/18632555

相关文章

  • Oracle12C安装及基本操作
    Oracle12C安装及基本操作一、环境操作系统软件版本OracleLinuxServer7.9Oracle12C注:这使用图像界面安装,所以服务器要带GUI。二、环境初始化关闭防火墙并禁止开机启动[root@oracle~]#systemctldisablefirewalld--now创建用户,组,目录,权限[root@o......
  • gitee库的远程基本操作
    gitclonehttps://gitee.com/ffxo/malloclabcdmalloclab添加远程仓库gitremoteaddupstreamhttps://gitee.com/ffxo/malloclab查看远程仓库gitremote-v拉取最新更改gitfetchupstream合并本地分支gitcheckoutmastergitmergeupstream/master全局设置gitco......
  • python数据分析:介绍pandas库的数据类型Series和DataFrame
    安装pandaspipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple/使用pandas直接导入即可importpandasaspdpandas的数据结构pandas提供了两种主要的数据结构:Series和DataFrame,类似于python提供list列表,dict字典,tuple元组等数据类型用于存储数据。1.Se......
  • 文件的基本操作
    文件的基本操作前言:本节理解即可。主要就多了一个打开文件表的相关知识。​​‍一、创建文件​​‍二、删除文件​​‍三、打开文件​​​​‍四、关闭文件​​‍五、读文件​​‍六、写文件​​......
  • 【栈】栈的定义及基本操作
    1.栈的定义和特点定义:栈是限定尽在表尾进行插入或删除操作的线性表。表头元素成为栈底,表尾元素成为栈顶。 特点:后进先出(先进后出)2.顺序栈    顺序栈是利用顺序存储结构实现的栈,即用一组连续的存储单元来依次存储自栈底到栈顶的数据元素。top指针指向栈顶......
  • python中文件的基本操作、文件读写
    python中文件的基本操作、文件读写1.基础操作1.1文件概念文件就是存储在某种长期储存设备上的一段数据。1.2基础操作打开文件读、写文件关闭文件可以只打开和关闭文件,不进行任何读写操作。1.3文件对象的方法1.3.1open()创建一个file对象,默认是以只读模式打开......
  • 数据库的基本操作
    title:数据库的基本操作date:2024/12/9updated:2024/12/9author:cmdragonexcerpt:数据库的基本操作是使用数据库管理系统(DBMS)执行数据存储和检索的核心行为。通过对数据库的创建、删除、查询、更新和删除等基本操作,用户能有效地管理和利用数据资源。本节将详细......
  • C++链表的创建与基本操作
    在C++中,链表是一种动态数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表具有灵活的内存管理和高校的插入与删除操作,但访问效率较低。链表的每个节点通常包含两部分:1、数据部分(存储链表中元素的数据);2、指针部分(指向链表中的下一个节点)。链表类型主......
  • 数据库的基本操作
    title:数据库的基本操作date:2024/12/9updated:2024/12/9author:cmdragonexcerpt:数据库的基本操作是使用数据库管理系统(DBMS)执行数据存储和检索的核心行为。通过对数据库的创建、删除、查询、更新和删除等基本操作,用户能有效地管理和利用数据资源。本节将详细介绍这......
  • SparkSQL 中 DataFrame 的转换
    目录一、Spark中的数据类型概述二、DataFrame的转换方式自动推断类型转换DataFrame  自定义Schema转换DataFrame三、DataFrame与RDD互转四、实际应用场景与注意事项五、总结        在大数据处理领域,SparkSQL凭借其强大的数据处理能力和高效的......