【学习笔记】Python大数据处理与分析——pandas数据分析

一、pandas中的对象

1、Series对象

        由两个相互关联的数组(values, index)组成,前者(又称主数组)存储数据,后者存储values内每个元素对应关联的标签。

import numpy as np
import pandas as pds1 = pd.Series([1, 3, 5, 7])print(s1)
→0    11    32    53    7dtype: int64print(s1.values)
→[1 3 5 7]print(s1.index)
→RangeIndex(start=0, stop=4, step=1)

        通过NumPy数组导入Series对象:

arr1 = np.array([1, 3, 5, 7])
s2 = pd.Series(arr1, index=['a', 'b', 'c', 'd'])
s2_ = pd.Series(s2)print(s2)
→a    1b    3c    5d    7dtype: int32print(s2_)
→a    1b    3c    5d    7dtype: int32

        若index数组的值在字典中有对应的键,则生成的Series中对应的元素是字典中对应的值(如果没有,其值为NaN空值)。

dict1 = {"a": 3, "b": 4, "c": 5}
s3 = pd.Series(dict1, index=["a", "b", "c", "d"])print(s3)
→a    3.0b    4.0c    5.0d    NaNdtype: float64

2、DataFrame对象

        将Series的使用场景扩展到多维,由按一定顺序的多列数据(可不同类型)组成,有两个索引数组(index, columns)。

dict2 = {"a": [1, 2, 3, 4], "b": [5, 6, 7, 8], "c": [9, 10, 11, 12]}
df1 = pd.DataFrame(dict2)print(df1)
→  a  b   c
0  1  5   9
1  2  6  10
2  3  7  11
3  4  8  12df2 = pd.DataFrame(np.arange(16).reshape((4, 4)),index=["one", "two", "three", "four"],columns=["ball", "pen", "pencil", "paper"])print(df2)
→      ball  pen  pencil  paper
one       0    1       2      3
two       4    5       6      7
three     8    9      10     11
four     12   13      14     15

二、pandas的基本操作

1、导入与导出数据

(1)csv文件导入

        函数原型read_csv(filepath, sep, names, encoding),参数分别为:导入csv文件的路径、分隔符、导入的列和指定列的顺序(默认按顺序导入所有列)和文件编码(一般为utf-8)。

(2)txt文件导入

        read_table()的参数与read_csv()一样,但txt文件的分隔符不确定,所以参数设置需要更严格准确。

(3)Excel文件导入

        read_excel()的参数只有三个:路径名、读取表格名和读取列名,一般只需要第一个。

        示例如下,其中data.csv的内容如下:

        data.txt的内容如下:

        data.xlsx的内容如下:

df3 = pd.read_csv(r"D:\Pycharm professional\pythonProject\test_pandas_files\data.csv")print(df3)
→   0   1   2
0   1   2   3
1   4   5   6
2   7   8   9
3  10  11  12df4 = pd.read_table(r"D:\Pycharm professional\pythonProject\test_pandas_files\data.txt", sep=' ', header=None)print(df4)
→  0   1
0  1   2
1  3   4
2  5   6
3  7   8
4  9  10df5 = pd.read_excel(r"D:\Pycharm professional\pythonProject\test_pandas_files\data.xlsx")print(df5)
→  0  1  2  3
0  a  b  c  d
1  e  f  g  h
2  i  j  k  l

 (4)数据导出

        函数原型为to_csv(filepath, sep, names, encoding),参数分别为:导出csv文件的路径、分隔符(默认为逗号)、是否输出索引(默认为True,即输出索引)和文件编码(一般为utf-8)。

df3.to_csv(r"D:\Pycharm professional\pythonProject\test_pandas_files\data1.csv", index=True, header=True)
df3.to_csv(r"D:\Pycharm professional\pythonProject\test_pandas_files\data2.csv", index=False, header=True)

        data1.csv的内容如下: 

        data2.csv的内容如下: 

2、数据的查看与检查

(1)Series对象

print(s1[2])
→5print(s2['c'])
→5print(s2[0:2])
→a    1b    3dtype: int32print(s2[['a', 'b']])
→a    1b    3dtype: int32

(2)DataFrame对象

print(df2.columns)
→Index(['ball', 'pen', 'pencil', 'paper'], dtype='object')print(type(df2.columns))
→<class 'pandas.core.indexes.base.Index'>print(df2.index)
→Index(['one', 'two', 'three', 'four'], dtype='object')print(type(df2.index))
→<class 'pandas.core.indexes.base.Index'>print(df2.values)
→[[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11][12 13 14 15]]print(type(df2.values))
→<class 'numpy.ndarray'>print(df2["pencil"])
→one       2two       6three    10four     14Name: pencil, dtype: int32print(df2.pen)
→one       1two       5three     9four     13Name: pen, dtype: int32print(df2[0:2])
→    ball  pen  pencil  paper
one     0    1       2      3
two     4    5       6      7

3、数据的增删查改

        创建Series对象如下:

s4 = pd.Series([1, 3, 5, 7], index=['a', 'b', 'c', 'd'])

(1)增加

s4['e'] = 9
print(s4)
→a    1b    3c    5d    7e    9dtype: int64

(2)删除

s4.pop('e')
print(s4)
→a    1b    3c    5d    7dtype: int64print(s4.drop('c'))
→a    1b    3d    7dtype: int64print(s4)
→a    1b    3c    5d    7dtype: int64

(3)查找与修改

s4[2] = 6
s4['a'] = 0
print(s4)
→a    0b    3c    6d    7dtype: int64print(s4[s4 > 4])
→c    6d    7dtype: int64df2["pencil"][1] = 12
print(df2)
→      ball  pen  pencil  paper
one       0    1       2      3
two       4    5      12      7
three     8    9      10     11
four     12   13      14     15

4、pandas的基本运用

(1)数据统计

        创建DataFrame对象如下:

arr2 = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape(4, 2)
df6 = pd.DataFrame(arr2, index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
print(df6)
→  one  two
a    1    2
b    3    4
c    5    6
d    7    8
① 求和
print(df6.sum())
→one    16two    20dtype: int64print(df6.sum(axis=1))
→a     3b     7c    11d    15dtype: int64
② 累计求和
print(df6.cumsum())
→  one  two
a    1    2
b    4    6
c    9   12
d   16   20
③ 返回最值行名称
print(df6.idxmax())
→one    dtwo    ddtype: objectprint(df6.idxmin())
→one    atwo    adtype: object
④ 去重

        unique()返回NumPy数组,value_counts()返回Series对象(index为不重复的元素,values为不重复元素的频数)。

s5 = pd.Series([1, 3, 5, 7, 2, 4, 3, 5, 7, 6, 7])print(s5.unique())
→[1 3 5 7 2 4 6]print(type(s5.unique()))
→<class 'numpy.ndarray'>print(s5.value_counts())
→7    33    25    21    12    14    16    1dtype: int64print(type(s5.value_counts()))
→<class 'pandas.core.series.Series'>
⑤ 筛选数据

        isin()判定Series对象中每个元素是否包含在给定的参数中。

print(s5.isin([2, 4]))
→0     False1     False2     False3     False4      True5      True6     False7     False8     False9     False10    Falsedtype: boolprint(s5[s5.isin([2, 4])])
→4    25    4dtype: int64

(2)算术运算

s6 = pd.Series([20, 40, 60, 80])print(s6 / 2)
→0    10.01    20.02    30.03    40.0dtype: float64print(np.log(s6))
→0    2.9957321    3.6888792    4.0943453    4.382027dtype: float64

(3)数据对齐

        数据清洗的重要过程,可按索引进行对齐运算,没对齐的位置填充NaN,数据末尾也可填充NaN。

s7 = pd.Series({"b": 4, "c": 5, "a": 3})
s8 = pd.Series({"a": 1, "b": 7, "c": 2, "d": 11})print(s7 + s8)
→a     4.0b    11.0c     7.0d     NaNdtype: float64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/312021.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xxl-job使用自动注册节点,ip不对,如何解决????

很明显这时我们本机的ip和我们xxl-job自动注册的ip是不一致的&#xff0c;此时该如何处理呢&#xff1f;&#xff1f;&#xff1f;&#xff1f; 方法一&#xff1a;在配置文件中&#xff0c;将我们的ip固定写好。 ### xxl-job executor server-info xxl.job.executor.ip写你的…

Flink SQL

文章目录 一、Flink SQL1、sql-client准备1.1 基于yarn-session模式1.2 常用配置 2、流处理中的表2.1 动态表和持续查询2.2 将流转换成动态表2.3 用SQL持续查询2.4 将动态表转换为流 3、时间属性3.1 事件时间3.2 处理时间 4、DDL&#xff08;Data Definition Language&#xff…

详解UART通信协议以及FPGA实现

文章目录 一、UART概述二、UART协议帧格式2.1 波特率2.2 奇校验ODD2.3 偶校验EVEN 三、UART接收器设计3.1 接收时序图3.2 Verilog代码3.3 仿真文件测试3.4 仿真结果3.5 上版测试 四、UART发送器设计4.1 发送时序图4.2 Verilog代码4.3 仿真文件测试4.4 仿真结果4.5 上板测试 五、…

【Web】Dest0g3 520迎新赛 题解(全)

目录 phpdest EasyPHP SimpleRCE funny_upload EasySSTI middle PharPOP ezip NodeSoEasy Really Easy SQL&easysql EzSerial ljctr phpdest 尝试打pearcmd&#xff0c;但似乎没有写文件的权限 ?config-create/&file/usr/local/lib/php/pearcmd.php&a…

从零开始写 Docker(十一)---实现 mydocker exec 进入容器内部

本文为从零开始写 Docker 系列第十一篇&#xff0c;实现类似 docker exec 的功能&#xff0c;使得我们能够进入到指定容器内部。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&…

STM32 F103 C8T6开发笔记14:与HLK-LD303-24G测距雷达通信

今日尝试配通STM32 F103 ZET6与HLK-LD303-24G测距雷达的串口通信解码 文章提供测试代码...... 目录 HLK-LD303-24G测距雷达外观&#xff1a; 线路连接准备&#xff1a; 定时器与串口配置准备&#xff1a; 定时器2的初始化&#xff1a; 串口1、2初始化&#xff1a; 串口1、2自定…

C++从入门到精通——类和对象(下篇)

1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _mont…

Web3.0与AI的交融:开启智能互联网新时代

目前有140 多个 Web3 AI 概念项目&#xff0c;覆盖了基础设施、数据、预测市场、计算与算力、教育、DeFi & 跨链、安全、NFT & 游戏 & 元宇宙、搜索引擎、社交 & 创作者经济、AI 聊天机器人、DID & 消息传递、治理、医疗、交易机器人等诸多方向。持续关注…

C++笔记:类和对象

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量&#xff0c;类型就像是定义了数据的规则&#xff0c;而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型&#xff0c;而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

怎么用手机远程控制电脑 远程控制怎么用

怎么用手机远程控制电脑&#xff1a;远程控制怎么用 在这个科技日新月异的时代&#xff0c;远程控制电脑已经成为了很多人的需求。有时&#xff0c;我们可能在外出时突然需要访问家中的电脑&#xff0c;或者在工作中需要远程操控办公室的电脑。这时&#xff0c;如果能用手机远…

JavaEE:JVM

基本介绍 JVM&#xff1a;Java虚拟机&#xff0c;用于解释执行Java字节码 jdk&#xff1a;Java开发工具包 jre&#xff1a;Java运行时环境 C语言将写入的程序直接编译成二进制的机器语言&#xff0c;而java不想重新编译&#xff0c;希望能直接执行。Java先通过javac把.java…

Visual Studio 2019 社区版下载

一、网址 https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes#start-window 二、选择这个即可

【Java EE】关于Spring MVC 响应

文章目录 &#x1f38d;返回静态页面&#x1f332;RestController 与 Controller 的关联和区别&#x1f334;返回数据 ResponseBody&#x1f38b;返回HTML代码片段&#x1f343;返回JSON&#x1f340;设置状态码&#x1f384;设置Header&#x1f338;设置Content-Type&#x1f…

【单例模式】饿汉式、懒汉式、静态内部类--简单例子

单例模式是⼀个单例类在任何情况下都只存在⼀个实例&#xff0c;构造⽅法必须是私有的、由⾃⼰创建⼀个静态变量存储实例&#xff0c;对外提供⼀个静态公有⽅法获取实例。 目录 一、单例模式 饿汉式 静态内部类 懒汉式 反射可以破坏单例 道高一尺魔高一丈 枚举 一、单例…

自学Java的第二十四次笔记

一,方法重载 1.基本介绍 java 中允许同一个类中&#xff0c;多个同名方法的存在&#xff0c;但要求 形参列表不一致&#xff01; 比如&#xff1a; System.out.println(); out 是 PrintStream 类型 2.重载的好处 1) 减轻了起名的麻烦 2) 减轻了记名的麻烦 3.快速入门案…

【中间件】ElasticSearch简介和基本操作

一、简介 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎&#xff0c;支持各种数据类型&#xff0c;包括文本、数字、地理、结构化、非结构化 ,可以让你存储所有类型的数据&#xff0c;能够解决不断涌现出的各种用例。其构成如下&#xff1a; 说明&#xff1…

Python基于深度学习的车辆特征分析系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

ARMv8-A架构下的外部debug模型之外部调试事件(external debug events)概述

外部调试器与处理器之间的握手与external debug events 一&#xff0c;External Debug的使能二&#xff0c;外部调试器和CPU之间的握手三&#xff0c;外部调试事件 External debug events1. External debug request event2. Halt instruction debug event3. Halting step debug…

天池酒瓶瑕疵检测数据集分析及完整baseline

以下内容为还没思路的小伙伴牵个头提供一个demo,大佬勿喷,线上成绩0.7,留空间给小伙伴们发挥自己的力量 ps:markdown不怎么熟悉,代码中如有明显缩进问题,自行斟酌改正,编辑好几次都改不过来,请原谅.... 数据分析瑕疵大类: 瓶盖瑕疵、标贴瑕疵、喷码瑕疵、瓶身瑕疵、酒液瑕疵瑕…

hadoop编程之工资序列化排序

数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…