【学习笔记】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.mzph.cn/news/822423.shtml

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

相关文章

pyqt的人脸识别 基于face_recognition库

参考文献&#xff1a; 1、python face_recognition实现人脸识别系统_python facerecognition检测人脸-CSDN博客 2、cv2.VideoCapture()_cv2.videocapture(0)-CSDN博客 1、camera.py文件代码如下&#xff1b;目录如下 import sys from PyQt5.QtWidgets import QApplication, …

NineData正式将SQL开发正式升级为数据库DevOps

NineData SQL 开发早期主要提供 SQL 窗口&#xff08;IDE&#xff09;功能&#xff0c;产品经过将近两年时间的打磨&#xff0c;新增了大量的企业级功能&#xff0c;时至今日已经服务了上万开发者&#xff0c;覆盖了数据库设计、开发、测试、变更等生命周期的功能。 为了让企业…

深入理解数据结构第五弹——排序(2)——快速排序

排序&#xff08;1&#xff09;&#xff1a;深入了解数据结构第四弹——排序&#xff08;1&#xff09;——插入排序和希尔排序-CSDN博客 前言&#xff1a; 在前面我们已经讲过了几种排序方式&#xff0c;他们的效率有快有慢&#xff0c;今天我们来学习一种非常高效的排序方式…

笔记本电脑上的聊天机器人: 在英特尔 Meteor Lake 上运行 Phi-2

对应于其强大的能力&#xff0c;大语言模型 (LLM) 需要强大的算力支撑&#xff0c;而个人计算机上很难满足这一需求。因此&#xff0c;我们别无选择&#xff0c;只能将它们部署至由本地或云端托管的性能强大的定制 AI 服务器上。 为何需要将 LLM 推理本地化 如果我们可以在典配…

windows下使用nginx设置静态资源路由

1、下载nginx http://nginx.org/en/download.html 下载稳定版本&#xff0c;以nginx/Windows-1.24.0为例&#xff0c;下载后解压&#xff0c;解压后如下&#xff1a; 2、启动nginx 打开cmd命令窗口&#xff0c;切换到nginx解压目录下&#xff1a; start nginx # 启动nginx服务…

OpenWrt 多拨负载均衡不起作用

检查 负载均衡->规则->Https->粘滞模式 是否启动&#xff0c;设置为 否 如果设置为是&#xff0c;那么根据官方描述&#xff1a; 来自相同源 IP 的流量&#xff0c;如果已经匹配过此规则并且在粘滞超时时间内&#xff0c;将会使用相同的 WAN 接口 意思就是如果你同一个…

实验六 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 请完成创建图片库应用&#xff0c;显示一系列预设的图片。 提供按钮来切换显示不同类别的图片。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; 1.WXML <view> <button bindtap"showAll">所有图片</but…

小程序视频怎么保存到mp4

小程序上的视频如何下载成mp4&#xff0c;本文就将教大家如何将小程序视频保存到mp4&#xff0c;这里要用到一个工具:下载高手 下载高手的文件我已经打包好了 下载高手链接&#xff1a;https://pan.baidu.com/s/1qJ81sNBzzzU0w6DWf-9Nxw?pwdl09r 提取码&#xff1a;l09r -…

PHP反序列化命令执行+PHP反序列化POP大链 +PHP反序列化基础

[题目信息]&#xff1a; 题目名称题目难度PHP反序列化命令执行1 [题目考点]&#xff1a; 反序列化命令执行&#xff0c;获取题目flag。[Flag格式]: SangFor{t5euvZ_OB8Jd_h2-}[环境部署]&#xff1a; docker-compose.yml文件或者docker tar原始文件。 docker-compose up …

DataGrip2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 DataGrip是由JetBrains公司开发的一款强大的关系数据库集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为数据库开发人员和数据库管理员设计。它提供了一个统一的界面&#xff0c;用于管理和开发各种关系型数据库&#x…

用于半监督的图扩散网络 笔记

1 Title Graph Neural Diffusion Networks for Semi-supervised Learning&#xff08;Wei Ye, Zexi Huang, Yunqi Hong, and Ambuj Singh&#xff09;【2022】 2 Conclusion This paper proposes a new graph neural network called GND-Nets (for Graph Neural Diffu…

计算股价波动率python

上述图片上传gemini&#xff0c;提问&#xff1a;转换为python代码 好的&#xff0c;以下是您发送的图像中公式的 Python 代码&#xff1a; python def stock_volatility(prices, opening_prices, N): """ 计算股票价格的波动率。 参数&#xff1a; p…

vscode如何方便地添加todo和管理todo

如果想在vscode中更加方便的添加和管理TODO标签&#xff0c;比如添加高亮提醒和查看哪里有TODO标签等&#xff0c;就可以通过安装插件快速实现。 安装插件 VSCode关于TODO使用人数最多的插件是TODO Height和Todo Tree 按住 CtrlShiftX按键进入应用扩展商店&#xff0c;输入to…

潮玩宇宙小程序定制大逃杀游戏APP开发H5游戏

游戏名称&#xff1a;潮玩宇宙大逃杀 游戏类型&#xff1a;休闲竞技类小游戏 游戏目标&#xff1a;玩家通过选择房间躲避杀手&#xff0c;生存下来并瓜分被杀房间的元宝。 核心功能 房间选择&#xff1a;玩家进入游戏后&#xff0c;可以选择一间房间躲避杀手。杀手行动&…

机器学习——自动驾驶

本章我们主要学习以下内容: 阅读自动驾驶论文采集数据根据论文搭建自动驾驶神经网络训练模型在仿真环境中进行自动驾驶 论文介绍 本文参考自2016年英伟达发表的论文《End to End Learning for Self-Driving Cars》 📎end2end.pdf

c语言中的数组

数组 数组是一种构造类型&#xff0c;是由基本类型构造而成。当我们想用一群变量来描述同一类相同的东西时候&#xff0c;比如100个年龄变量&#xff0c;我们可以这样int age1&#xff1b;int age2&#xff1b;int age3&#xff1b;……int age 100;这样即不方便书写&#xff…

通过腾讯云搭建跨境电商demo的详细操作过程(建站系统 保姆级指导,巨详细)

引言&#xff1a; 有许多做跨境电商的朋友&#xff0c;或者为跨境电商服务的小企业&#xff0c;都会面临搭建电商平台V1.0的问题 因此&#xff0c;花了点时间&#xff0c;找了一个开源的项目&#xff0c;让大家可以跑起来&#xff0c;一方面了解平台都有哪些模块&#xff0c;另…

揭秘ebay、亚马逊测评系统:从稳定环境搭建到防关联技术

在亚马逊、ebay平台上进行自养号测评、L ka等活动&#xff0c;首要问题是确保环境的安全性和稳定性。一个稳定的环境是进行测评的基础&#xff0c;如果无法解决安全性问题&#xff0c;那么从事这些项目就不值得。我们在环境技术研发领域已经有8年的经验&#xff0c;在早期测试了…

创建k8s deploy yaml文件的imagePullSecrets语句

镜像仓库是harbor kubectl create secret docker-registry key --docker-server192.168.0.190 --docker-usernameadmin --docker-passwordHarbor12345

Lagent AgentLego 智能体介绍

本文主要介绍智能体相关基础知识&#xff0c;主流的智能体开源项目&#xff0c;重点介绍Lagent智能体和AgentLego框架。 一. 为什么要有智能体 目前的大预言模型有一些局限性&#xff0c;包括有时候会生成虚假信息&#xff0c;也就是我们说的“大模型胡言乱语”&#xff0c;还…