数据分析(2)

server/2024/12/22 9:28:43/

数据分析(2)

本文介绍pandas的另一种数据类型DataFrame,中文叫数据框

DataFrame

定义:

DataFrame是一个二维的矩阵数据表,通过行和列,可以定位一个值。
在某种程度上,可以认为DataFrame是“具有相同index的series的集合”

定位:

1.行索引(index),可以用来定位到具体的某一行

2.列索引(columns),用来定位到具体的某一列

通过index和columns,可以定位到一个值,能快速进行数据的筛选和定位

DataFrame构造函数

import pandas as pddata = {'rank':[1,2,3,4],'GDP':[80855,77388,68024,47251]}
city = ['GD','JS','SD','ZJ']
df = pd.DataFrame(data,index=city)
print(df)

运行结果:
在这里插入图片描述

第一个常用参数:data,表示需要传入的数据,可以是字典,列表等。若不传入数据,会生成一个空的DataFrame。

第二个常用参数:index,参数index用于定义DataFrame的行索引(index),如果不传入可选参数,index就会默认从0开始生成。

import pandas as pddata = {'rank':[1,2,3,4],'GDP':[80855,77388,68024,47251]}
city = ['GD','JS','SD','ZJ']
df = pd.DataFrame(data,index=city)
print(df.dtypes) #输出df每一列数据的数据类型
print(df.values) #输出df的每一列的数据的值
print(df.index) #输出变量df的行索引

运行结果:
在这里插入图片描述

DataFrame的轴

轴(axis),是用来为超过一维的数组定义属性,二维数组有两个轴,三维数组有三个轴,以此类推。

eg:对于DataFrame而言,第0轴垂直向下,即axis=0是垂直方向进行操作;第1轴水平向右,即asix=1是水平方向进行操作。
在这里插入图片描述

如果要按行或者按列来对DataFrame内的数据进行求和,可以使用sum()函数。

那么在sum()函数中,就可以使用axis参数来指定求和的方向。

如下图所示
在这里插入图片描述

当axis=0时,是在垂直的方向上进行求和操作;

当axis=1时,是在水平的方向上进行求和操作。

文件读取

在大多数情况下,处理数据和分析数据时,我们的数据来源都是CSV文件和Excel文件
pandas的DataFrame有大量数据处理的方法,所以pandas会将数据读取为DataFrame对象,以便进行后续的数据处理操作。

CSV(Comma-Separated Values)文件以纯文本的形式存储数字、文本等表格数据。它的数据格式如图所示,文件中多个数据之间通常用逗号分隔,每一列的数据都是相同的结构。
在这里插入图片描述

读取CSV文件

pandas模块中,读取CSV文件主要使用pd.read_csv()函数。

import pandas as pddata = pd.read_csv("path")

参数:
必选参数: 要读取的CSV文件的文件路径

可选参数:1.指定行索引:index_col

2.获取指定列

3.添加colums:header=None和names

4.设置格式参数encoding=“utf-8”,避免读取csv文件乱码

保存CSV文件

保存CSV文件主要使用DataFrame(变量名).to_csv()

data.to_csv("path")

必选参数:要保存CSV文件的文件路径

可选参数:设置索引参数index = False,这样就不会将行索引信息写入第一列

设置参数encoding=“utf-8-sig”,避免产生csv文件乱码

读取Excel文件

pandas模块中,读取excel文件主要使用pd.read_excel()函数。

data=pd.read_excel(".xlsx",sheet_name="XXX")

参数:
必选参数:要读取的Excel文件的文件路径

可选参数:当我们需要读取指定工作表时,pd.read_excel()函数提供了一个参数sheet_name = “”,将要读取的工作表名称作为字符串传入该参数即可

江湖可能因为少了谁而失色,却不会因为少了谁后就不再是江湖。 —高手寂寞


http://www.ppmy.cn/server/10283.html

相关文章

多线程基础

一锁两并三程 锁 synchronized 并发和并行 并发(concurrent):在一台处理器上“同时”处理多个任务,即有多个任务在单个cpu上交替进行,但其实在同一时刻,只有一个任务在执行。 并行(paralle…

单机三pxc节点集群,+docker-haproxy2.0负载均衡实现

一.下载 https://www.haproxy.org/download/2.0/src/haproxy-2.0.5.tar.gz 或者在这里下载(下面需要的各个配置文件都有): https://download.csdn.net/download/cyw8998/89170129 二.编写文件,制作docker镜像 1.Dockerfile&a…

word 第十四课

管理工作表数据 数据排序:Excel可以对整个数据表或选中的单元格区域中的数据按文本、数字或日期和时间等进行升序或降序排列。数据筛选:使用筛选可使数据表中仅显示满足条件的行,不符合条件的行将被隐藏。Excel提供了两种数据筛选方式&#…

单链表的查询

单链表的查询操作是指通过给定的值或位置,找到链表中对应的节点。 首先,要实现单链表的查询操作,需要定义一个链表节点的数据结构,包含一个值域和一个指向下一个节点的指针。 假设链表的节点定义如下: class ListNo…

密码学系列4-选择密文安全,同态加密安全性

本章将介绍Cramer-Shoup加密方案,并证明其安全性。最后讨论了同态加密方案的安全性证明 一、Cramer-Shoup加密 密钥生成 1.定义群 G G G,群的阶为 q q q,选取群的生成元

MATLAB初学者入门(10)—— 粒子群算法

粒子群优化(Particle Swarm Optimization, PSO)是一种基于群体协作的优化技术,它由社会行为模型(如鸟群觅食行为)启发而来。PSO 通过模拟一群粒子(候选解)在解空间中的移动来寻找最优解。每个粒…

JavaEE初阶——多线程(六)——线程池

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章与大家分享多线程的第六篇文章,关于线程池 如果有不足的或者错误的请您指出! 目录 3.线程池3.1标准库的线程池3.2 标准库自己提供的几个工厂类3.3自己实现一个线程池完成大体框架接下来完…

Nginx下PHP连接到GBase 8s数据库 - PDO_GBASEDBT方式

PHP可以通过odbc,pdo_odbc和pdo_gbasedbt三种方式连接到GBase 8s数据库,这三种方式均需要通过CSDK客户端工具。 操作系统:CentOS 7.9 x86_64 必要组件: php及扩展,如php-fpm/php-odbc/php-pdo等nginx服务gcc/gcc-c …