Pandas 简明教程(二):读取文件、DataFrame常用属性/方法/条件过滤/聚合/分组

pandas中分组/聚合函数的用法 一。对Series进行的聚合 df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'], 'key2': ['one', 'two', 'one', 'two', 'one'], 'data1': np.random.randint(1, 10, 5), ... 阅读详情

一、读取文件

Pandas的主业是数据分析。因此,从外部文件读/写数据是Pandas的重要功能。Pandas提供了多种API函数用于支持多种类型数据(如CSV、Excel、SQL等)的读写,其中常用的函数如下表所示。

文件类型 读取函数 写入函数
xls/xlsx read_excel to_excel
CSV read_csv to_csv
SQL read_sql to_sql
JSON read_json to_json
HTML read_html to_html
HDF5 read_hdf to_hdf
pickle read_pickle to_pickle

Pandas可以将读取到的表格型数据转换为DataFrame数据,然后通过操作DataFrame进行数据分析、数据预处理及行列操作。

我们以CSV文件为例讨论一下Pandas是如何处理文件的,其他类型文件的操作也是类似的。

假设数据源为Salaries.csv,下面先利用Pandas的read_csv()方法读取数据。

In [1]: import pandas as pd
In [2]: data =pd.read_csv('Salaries.csv')
In [3]: data
Out[3]:
         rank discipline  phd  service     sex  salary
0        Prof          B   56       49    Male  186960
1        Prof          A   12        6    Male   93000
2        Prof          A   23       20    Male  110515
3        Prof          A   40       31    Male  131205
4        Prof          B   20       18    Male  104800
..        ...        ...  ...      ...     ...     ...
73       Prof          B   18       10  Female  105450
74  AssocProf          B   19        6  Female  104542
75       Prof          B   17       17  Female  124312
76       Prof          A   28       14  Female  109954
77       Prof          A   23       15  Female  109646

[78 rows x 6 columns]

为了适应各种应用场景,read_csv()方法还配置了大量参数,这里仅说明部分常用的参数,更多内容可参考Pandas官网。

  • filepath_or_buffer:指定要读取的数据源,可以是网络链接地址URL,也可以是本地文件。
  • sep:指定分隔符,如果不指定参数,默认将英文逗号作为数据字段间的分隔符号。
  • delimiter:定界符,备选分隔符(如果指定该参数,则前面的sep参数失效),支持使用正则表达式来匹配某些不标准的CSV文件。Delimiter可视为sep的别名。
  • header:指定行数作为列名(相当于表格的表头,用来说明每个列的字段含义),如果文件中没有列名,则默认为0(即设置首行作为列名,真正的数据在0行之后)。如果没有表头,则起始数据就是正式的待分析数据,此时这个参数应该设置为None。
  • index_col:指定某个列(比如ID、日期等)作为行索引。如果这个参数被设置为包含多个列的列表,则表示设定多个行索引。如果不设置,Pandas会启用一个0~n-1(n为数据行数)范围内的数字作为列索引。
  • converters:用一个字典数据类型指明将某些列转换为指定数据类型。在字典中,key用于指定特定的列,value用于指定特定的数据类型。
  • parse_dates:指定是否对某些列的字符串启用日期解析,它是布尔类型的,默认为False,即字符串被原样加载,该列的数据类型就是Object(相当于Python内置的字符串数据str)。如果设置为True,则这一列的字符串(如果是合法字符串的话)会被解析为日期类型。

二、DataFrame中的常用属性

DataFrame常用属性的名称及描述如下表所示。

属性名称 说明
index 行索引
index.name 行索引名称
columns 列索引
columns.name 列索引名称
values 存储DataFrame数值的numpy数组
axes 行索引和列索引
ndim 维度
shape 形状,元组
size 元素个数
dtypes 列的数据类型
T DataFrame行列转置
In [4]: data.dtypes
Out[4]:
rank          object
discipline    object
phd            int64
service        int64
sex           object
salary         int64
dtype: object
In [5]: data['salary'].dtype
Out[5]: dtype('int64')
In [6]: data.shape
Out[6]: (78, 6)
In [7]: data.ndim
Out[7]: 2
In [8]: data.columns
Out[8]: Index(['rank', 'discipline', 'phd', 'service', 'sex', 'salary'], dtype
'object')
In [9]: data.axes
Out[9]:
[RangeIndex(start=0, stop=78, step=1),
 Index(['rank', 'discipline', 'phd', 'service', 'sex', 'salary'], dtype='object
)]
In [10]: data.values
Out[10]:
array([['Prof', 'B', 56, 49, 'Male', 186960],
       ['Prof', 'A', 12, 6, 'Male', 93000],
       ['Prof', 'A', 23, 20, 'Male', 110515],
       ['Prof', 'A', 40, 31, 'Male', 131205],
       ['Prof', 'B', 20, 
pandas分组聚合 基本操作 import pandas as pd import numpy as np df = pd.DataFrame({'a':['one','two','one','two'], 'b':['key1', 'key1','key2','key2'], 'c':[2,3,4,5], ... 阅读详情

相关推荐

pandas 的分组与聚合运算/groupby/transform/apply/agg

dataframe.groupby(): 用途:对一个dataframe或series进行分组计算操作 基本语法: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) 参数释义: by : 计算方式 by=函数:对df/s...

weixin_44595372的博客 4036

pandas的Series和DataFrame

文章目录一、pandas的核心类二、Series(数据系列)带标签的数组1.创建Series对象2.Series切片和索引读取文件二、Dataframe 二维,Series容器1.将字典转换为二维数组2. 一、pandas的核心类 Series(一位数组)、DataFrame(二维数组)、Index(索引) 二、Series(数据系列)带标签的数组 1.创建Series对象 2.Series切片和索引 读取文件 csv、excel、sql… 读取csv文件:pd.read_csv("./路径") 二、Da

weixin_46704813的博客 2150

【Pandas】pandas DataFrame agg

`pandas.DataFrame.groupby()` 是 Pandas 中用于进行**分组操作**的核心方法。它允许你根据一个或多个列的值将数据分成不同的组,然后对每个组应用聚合、转换或过滤等操作。

weixin_39648905的博客 1335

R 语言薪资数据集可视化

在数据科学和统计学领域,R 语言被广泛使用,因此了解 R 语言相关岗位的薪资情况对于从事或考虑从事数据科学职业的人来说是非常有价值的。箱线图可以展示薪资的离散程度和异常值情况,直方图可以展示薪资的频率分布,密度图可以展示薪资的概率密度分布,而趋势图可以展示薪资随时间的变化情况。通过对薪资数据的可视化分析,我们可以更好地了解行业薪资水平的分布和趋势,为职业选择和薪资谈判提供参考。通过合适的数据可视化技术,我们可以更好地解读和传达数据的信息,为决策和传达数据的信息,为决策和分析提供有力支持。

ByteJolt的博客 338

Salary1.csv

UA MATH 571A R语言回归分析实践 一元回归部分的数据 需要的可以下载下来 自己练习一下R语言做回归的命令 虽然是挺简单的

R以及Rstudio超详细安装教程(包括安装过程中出现的问题)

R安装及Rstudio安装,以及安装中出现的问题

2301_76908257的博客 1万+

使用IDF和VSCode构建ESP32的开发环境

本文主要介绍构建使用IDF和VS-CODE 工具构建ESP32的开发环境的详细步骤,还应用IDF和VS CODE创建ESP32的项目文件,并实现编译和下载功能。

mftang的博客 6818

避坑指南:Allegro 17.2更新封装时遇到的5个典型问题及解决方案(含Symbol报错处理)

本文深度解析Allegro 17.2封装更新过程中的核心机制与常见陷阱。针对“Update Symbols”功能失效、焊盘不匹配、DRC报错、图形层叠错误等5大典型问题,提供从原理分析到实战解决方案的完整指南,帮助用户实现从“更新失败”到“丝滑替换”的平稳过渡。

tgb34567890的博客 1040

随机森林模型及案例(Python)

1 集成模型简介 集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果。 集成学习模型的常见算法有Bagging算法和Boosting算法两种。 Bagging算法的典型机器学习模型为随机森林模型,而Boosting算法的典型机器学习模型则为AdaBoost、GBDT、XGBoost和LightGBM模型。 1.1 Bagging算法简介 Bagging算法的原理类似投票,每个弱学习器都有一票,最终根据所有弱学习器的投

qq_42433311的博客 4万+

《AgentScope-Java 深入浅出教程》第1章 AgentScope-Java 简介

AgentScope-Java 是一个面向智能体的编程框架,专门用于构建基于大语言模型(LLM)的 AI 应用程序。│ 你的业务应用 ││ AgentScope-Java 框架 ││ │ 智能体 │ │ 工具 │ │ 记忆 │ │ 模型 │ ││ LLM 服务 (DashScope/OpenAI/...) │能力说明类比ReAct 推理让智能体能够"思考"并"行动"就像人类思考后再做事工具调用让智能体能够执行外部操作就像人使用计算器、搜索引擎记忆管理让智能体能够记住对话历史。

步子哥的博客 592

【异常】Python环境中没有安装 `openpyxl` 模块提示ModuleNotFoundError: No module named ‘openpyxl‘

是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。只是示例版本号,你可以根据需要选择不同的版本。安装完成后,再次尝试运行你的程序,应该就不会再出现。,这表明你的Python环境中缺少。运行一个Python程序时遇到了。如果由于某些原因你无法直接使用。,你可以指定版本号来安装,这里。要解决这个问题,你需要安装。

奶爸的编程之路,也就一周冷个三天 3398

基于Simulink的永磁同步电机力位混合控制(导纳+位置)仿真

本文详细介绍了基于Simulink的永磁同步电机(PMSM)力位混合控制系统实现方法。主要内容包括:1) 通过导纳控制原理(二阶质量-阻尼-弹簧模型)实现机器人柔顺控制;2) 在Simulink中构建虚拟环境、导纳控制器、PMSM驱动系统等完整框架;3) 针对曲面恒力打磨场景,实现20N恒力跟踪(RMS误差1.2N)和位置顺应;4) 支持纯位置/导纳/恒力三种工作模式切换;5) 提供系统性能评估指标和高级扩展功能。该方案显著提升了机器人环境交互的安全性和适应性,适用于精密装配、人机协作等应用场景。

xiaoheshang_123的博客 147

如何借助Gemini 3 Pro完成一篇文献精读?(劝收藏)

金句必须是原文的完整句子,并附上该句子在文中的大致位置。你是一名资深科研文献评估专家,请根据我提供的文献信息(标题、作者、期刊、时间、引用、摘要、结论、图表)依次输出:①影响力评估:按期刊、作者、时间、引用、问题重要性给出1–10分及简述;用上述方法再结合Gemini 3 Pro的辅助,原本需要3小时才能读完一篇文献,现在只需50分钟,不管是顶刊论文还是领域内冷门论文,都可以用这套方法,另外七哥设计的高阶精读提示词,需根据自己的文献内容做调整,希望这篇文章的方法能帮你高效精读文献,掌握文献的精华内容。

智能AI让学术科研更容易 1302

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: Pandas简明教程(一):Series数据类型、DataFrame数据类型
下一篇: 使用matplotlib和pywaffle绘制象形图(PictorialBar)
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值