七.pandas处理第三方数据

目录

七.pandas处理第三方数据

1.Pandas读取文件

1.1 csv文件操作

1.1.1 CSV文件读取

自定义索引(inde_col)

查看每一列的dtype

更改文件标头名(列的标签)

跳过指定的行数

1.1.2 CSV文件写入

1.2 Excel文件操作

1.2.1 Excel文件读取

1.2.2 Excel文件写入

1.3 SQL操作

1.3.1 MySQL读取

index_col 属性(充当行标签)

将数据写入Excel

2.索引及基本操作

2.1 操作索引

2.2 添加,删除,插入


七.pandas处理第三方数据


1.Pandas读取文件

当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。

Panda 提供了多种读取数据的方法:

  • read_csv() 用于读取文本文件

  • read_json() 用于读取 json 文件

  • read_sql() 读取 sql 语句的

1.1 csv文件操作

CSV 又称逗号分隔值文件,是一种简单的文件格式,以特定的结构来排列表格数据。 CSV 文件能够以纯文本形式存储表格数据,比如电子表格、数据库文件,并具有数据交换的通用格式。CSV 文件会在 Excel 文件中被打开,其行和列都定义了标准的数据格式。

将 CSV 中的数据转换为 DataFrame 对象是非常便捷的。

和一般文件读写不一样,它不需要你做打开文件、读取文件、关闭文件等操作。相反,您只需要一行代码就可以完成上述所有步骤,并将数据存储在 DataFrame 中。

1.1.1 CSV文件读取

import pandas as pd
df = pd.read_csv("./number_data/student.csv", encoding="utf-8")
print(df)
​
​
------------或者----------
import pandas as pd
file=r'E:/././student.csv'
data=pd.read_csv(file,encoding='utf-8')
print(data)
​
自定义索引(inde_col)

在 CSV 文件中指定了一个,然后使用index_col可以实现自定义索引。

import pandas as pd
df = pd.read_csv("./number_data/student.csv", encoding="utf-8", index_col=["Name"])
print(df)
查看每一列的dtype
import pandas as pd
import numpy as np
​
# 转换salary为float类型(字典形式)
df = pd.read_csv("./number_data/student.csv", encoding="utf-8", dtype={'Salary': np.float64})
print(df.dtypes)
-----------
df.dtypes
#查看原先的数据类型.
​
更改文件标头名(列的标签)

使用 names 参数可以指定头文件的名称。

import pandas as pd
​
df = pd.read_csv("./number_data/student.csv", encoding="utf-8", names=["a","b","c","d","e"])
print(df)

文件标头名是附加的自定义名称,但是您会发现,原来的标头名(列标签名)并没有被删除,此时您可以使用header参数来删除它。

--加上header=0参数,就会删除原有的标头名.

import pandas as pd
​
df = pd.read_csv("./number_data/student.csv", encoding="utf-8", names=["a", "b", "c", "d", "e"], header=0)
print(df)
跳过指定的行数

skiprows参数表示跳过指定的行数。 (跳过前几行!!!)

import pandas as pd
​
df = pd.read_csv("./number_data/student.csv", encoding="utf-8", skiprows=1)
print(df)

1.1.2 CSV文件写入

Pandas 提供的 to_csv() 函数用于将 DataFrame 转换为 CSV 数据。

如果想要把 CSV 数据写入文件,只需向函数传递一个文件对象即可。

否则,CSV 数据将以字符串格式返回。

import pandas as pd
​
data = {'Name': ['Smith', 'Parker'], 'ID': [101, 102], 'Language': ['Python', 'JavaScript']}
info = pd.DataFrame(data)
​
csv_data = info.to_csv("./number_data/student.csv")

1.2 Excel文件操作

Excel 是由微软公司开发的办公软件之一,它在日常工作中得到了广泛的应用。在数据量较少的情况下,Excel 对于数据的处理、分析、可视化有其独特的优势,因此可以显著提升您的工作效率。但是,当数据量非常大时,Excel 的劣势就暴露出来了,比如,操作重复、数据分析难等问题。Pandas 提供了操作 Excel 文件的函数,可以很方便地处理 Excel 表格。

1.2.1 Excel文件读取

  • 如果您想读取 Excel 表格中的数据,可以使用 read_excel() 方法

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None,usecols=None, squeeze=False,dtype=None, engine=None,converters=None, true_values=None, false_values=None,skiprows=None, nrows=None, na_values=None, parse_dates=False,date_parser=None, thousands=None, comment=None, skipfooter=0,convert_float=True, **kwds)
参数名称说明
io表示 Excel 文件的存储路径。
sheet_name要读取的工作表名称。
header指定作为列名的行,默认0,即取第一行的值为列名;若数据不包含列名,则设定 header = None。若将其设置 为 header=2,则表示将前两行作为多重索引。
names一般适用于Excel缺少列名,或者需要重新定义列名的情况;names的长度必须等于Excel表格列的长度,否则会报错。
index_col用做行索引的列,可以是工作表的列名称,如 index_col = '列名',也可以是整数或者列表。
usecolsint或list类型,默认为None,表示需要读取所有列。
squeezeboolean,默认为False,如果解析的数据只包含一列,则返回一个Series。
converters规定每一列的数据类型。
skiprows接受一个列表,表示跳过指定行数的数据,从头部第一行开始。
nrows需要读取的行数。
skipfooter接受一个列表,省略指定行数的数据,从尾部最后一行开始。
#sheet_name=        这里也可以指定索引.(读取表  0   1)
​
import pandas as pd
​
df = pd.read_excel('./number_data/student.xlsx', sheet_name="Sheet1")
print(df)

1.2.2 Excel文件写入

通过 to_excel() 函数可以将 Dataframe 中的数据写入到 Excel 文件。

import pandas as pd
​
# 创建DataFrame数据
info_website = pd.DataFrame({'name': ['张三', '李四', '王五', '赵六'],'rank': [1, 2, 3, 4],'language': ['PHP', 'C', 'PHP', 'Python'],'url': ['www.zhangsan.com', 'c.lisi.net', 'www.wangwu.com', 'www.zhaoliu.com']})
​
# 创建ExcelWrite对象
writer = pd.ExcelWriter('website.xlsx')
info_website.to_excel(writer)
writer.save()
print('输出成功')
--------------------或者---------------
创建文件对像,直接写入.(类似.csv文件写入)

1.3 SQL操作

MySQL 作为数据记录和处理的常用工具之一 ,使用pandas对MySQL进行操作.

1.3.1 MySQL读取

---首先要连接mysql

--不需要创建游标了,直接读取.

import pandas as pd
import pymysql
​
coon = pymysql.connect(host="127.0.0.1",port=3306,user="root",password=" ",db="库名"
)
sql_one = "select * from house"
print(pd.read_sql(sql_one,con=coon))
​
sql_two = "select * from house where id > 10"
print(pd.read_sql(sql_two, con=coon))
index_col 属性(充当行标签)
import pandas as pd
import pymysql
​
coon = pymysql.connect(host="127.0.0.1",port=3306,user="root",password=" ",db="库名"
)
​
sql_one = "select * from house"
data = pd.read_sql(sql_one, con=coon,index_col="house_five")
print(data)
将数据写入Excel
import pandas as pd
import pymysql
​
coon = pymysql.connect(host="127.0.0.1",port=3306,user="root",password=" ",db="库名"
)
​
sql_one = "select * from house"
data = pd.read_sql(sql_one,con=coon)
​
#创建ExcelWrite对象.
writer = pd.ExcelWriter('website.xlsx')
data.to_excel(writer)
writer.save()
print('输出成功')

2.索引及基本操作

索引(index)是 Pandas 的重要工具,通过索引可以从 DataFame 中选择特定的行数和列数,这种选择数据的方式称为“子集选择”。

2.1 操作索引

import pandas as pd
import numpy as np
-----------------------------------
df = pd.read_csv("./number_data/movie.csv")
print(df.head())
-----------------------------------
​
print(df.shape)
-----------------------------------
​
# 修改行索引, 把一列数据放到最前面.
print(df.set_index("movie_title").head())
-----------------------------------
​
# 默认值行索引
print(df.reset_index().head())
-----------------------------------
​
print(df.columns)
# 修改行列名
# 单个进行修改
print(df.rename(columns={"color": "颜色"},index={0: "第一列"}))
​
-----------------------------------
​
df.columns  #返回列表,列标签.
# 整体修改,上面复制过来直接进行修改
# df.columns = ['颜色', '姓名', 'num_critic_for_reviews', 'duration',
#               'director_facebook_likes', 'actor_3_facebook_likes', 'actor_2_name',
#               'actor_1_facebook_likes', 'gross', 'genres', 'actor_1_name',
#               'movie_title', 'num_voted_users', 'cast_total_facebook_likes',
#               'actor_3_name', 'facenumber_in_poster', 'plot_keywords',
#               'movie_imdb_link', 'num_user_for_reviews', 'language', 'country',
#               'content_rating', 'budget', 'title_year', 'actor_2_facebook_likes',
#               'imdb_score', 'aspect_ratio', 'movie_facebook_likes']
# print(df.head())
#
-----------------------------------
​
# 转化为列表之后修改
my_columns = list(df.columns)
my_columns[0] = "颜色色"
df.columns = my_columns
print(df.head())

2.2 添加,删除,插入

import pandas as pd
import numpy as np
​
df = pd.read_csv("./number_data/movie.csv")
print(df.head())
print(df.columns)
-----------------------------------
​
# 添加列(存在进行修改,不存在进行添加.)
df["new_test"] = 0
print(df.head())
​
#添加列
df["money"] = df["gross"] - df["budget"]    #在屁股后面进行添加.
df.insert(0, "new_money", value=df["gross"] - df["budget"]) #在指定的位置进行添加.
-----------------------------------
​
# 传入数据
df["new_test"] = df["actor_1_facebook_likes"] + df["actor_2_facebook_likes"]
print(df.head())
-----------------------------------
​
# 删除
print(df.drop(2, axis=0).head())   # 删除索引行
print(df.drop("color", axis="columns").head())  # 删除具体列
-----------------------------------
​
# 保存
df.iloc[:3, :].to_csv("./movie_new.csv")
df.iloc[:3, :].to_excel("./movie_new.xlsx",sheet_name="xxx")

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

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

相关文章

mysdql 启动错误 unknown variable windows phpstudy mysql错误日志的正确文件名

1. windowsphpstudy mysql错误日志的正确文件名 log-error"D:/phpstudy_pro/Extensions/MySQL5.7.26/data"。 刚好 数据库文件目录也是"D:/phpstudy_pro/Extensions/MySQL5.7.26/data" 其实对应的错误日志是 D:/phpstudy_pro/Extensions/MySQL5.7.26/dat…

web开发模式

1. Web 开发模式 目前主流的 Web 开发模式有两种,分别是 ① 基于服务器渲染的传统 Web 开发模式 ② 基于前后端分离的新型 Web 开发模式 1. 服务器渲染的Web开发模式 服务器渲染的概念:服务器发送给客户端的 HTML 页面,是在服务器通过字符…

【C++】类和对象终章

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、初始化列表1.1 初始化列表的形式1.2 初始化列表的注意事项 二、explicit关键…

[数据集][目标检测]螺丝螺母检测数据集VOC+YOLO格式2100张13类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2100 标注数量(xml文件个数):2100 标注数量(txt文件个数):2100 标注…

@RequestParam、@PathVariable、@RequestBody

1、中文翻译 RequestParam-请求参数、PathVariable-路径变量、RequestBody请求体 2、作用: Controller中获取前端传递的参数 3、从注解本身角度分析 3.1、PathVariable:路径变量 通过 PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形…

CSS3病毒病原体图形特效

CSS3病毒病原体图形特效,源码由HTMLCSSJS组成,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址 CSS3病毒病原体图形特效代码

(二)移植FreeRTOS到STM32中

一、概念 (1)任务(线程):根据功能的不同,将一个系统分割成一个个独立且无法返回的函数,这个函数就被称为任务 (2)任务栈:静态创建的任务保存在栈中 &#xf…

代码随想录阅读笔记-哈希表【四数相加II】

题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] B[j] C[k] D[l] 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间…

Formate函数的一般使用

Program Project2;{$APPTYPE CONSOLE}UsesSysUtils;Varnum: Integer;r1: Real;BeginRead(num, r1);Writeln(Format(%d 绝对值%%d:%d, [num, abs(num)]));Writeln(Format(%u 绝对值%%u:%u, [num, abs(num)]));Writeln(Format(%f 参数为浮点数,…

前后端分离:现代Web开发的协作模式

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

el-cascader修改样式(不影响全局)

当用/deep/想像往常一样修改,会发现不生效,原因在于这个组件和div#app同级了,如果去掉scoped,是最简单的方法,当然,为了不影响全局我们当然不能这么做。 以下是步骤: 1.我们查看组件属性&…

镜像制作实战篇

“ 在失控边缘冲杀为,最终解脱” CMD与EntryPoint实战 EntryPoint 与 CMD都是docker 镜像制作中的一条命令,它们在概念上可能有些相似,但在使用中,两者是有明显的区别的。比如,执行一个没有调用EntryPoint、CMD的容器会…

Rust基础知识讲解

Rust 的背景和设计理念 Rust 是一种系统编程语言,旨在提供高性能、内存安全和并发性。它由 Mozilla 研究院开发,第一个正式版本(1.0)发布于 2015 年。Rust 的设计融合了静态类型语言的性能和安全性,以及现代语言的便利…

#QT(事件--快捷键保存文件)

1.IDE:QTCreator 2.实验:QEvent,QMouseEvent,QKeyEvent。 在上一个文本编辑器的基础上实现快捷键"ctrls"保存文件。 3.记录 (1)查看QEVENT的有效事件 (2) 所有时间均继承于QEvent,任…

微信小程序《简单、快速上手的微信小程序音乐播放器》+源代码+文档说明

文章目录 源代码下载地址项目介绍项目功能使用方法界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目功能 首页:歌曲歌手搜索,轮播图,各大榜单,热门歌单 正在播放: 当前播放歌曲展示…

MySQL查询结果竖列转列为字段:深入探讨pivot操作与应用实践

在数据分析和报表生成过程中,我们经常需要将MySQL查询结果中原本竖直排列的数据转换为横向的列,也就是常说的“行列转换”或“透视(pivot)”操作。MySQL本身并未内置像Excel那样的Pivot Table功能,但这并不妨碍我们通过SQL语句的巧妙构造实现相同的效果。本文将深入探讨My…

Parade Series - Web Streamer Low Latency

Parade Series - FFMPEG (Stable X64) 延时测试秒表计时器 ini/config.ini [system] homeserver storestore\nvr.db versionV20240312001 verbosefalse [monitor] listrtsp00,rtsp01,rtsp02 timeout30000 [rtsp00] typelocal deviceSurface Camera Front schemartsp ip127…

【C语言】strcpy与strncpy函数的使用和模拟实现

一.strcpy的使用与模拟实现 char* strcpy(char * destination, const char * source ); 使用注意事项: • 源字符串必须以 \0 结束。 • 会将源字符串中的 \0 拷贝到目标空间。 • 目标空间必须足够大,以确保能存放源字符串。 • 目标空间必须可修改。…

如何从不同维度对服务进行拆分

1.压力模型 高频高并发 商品详情页 低频突发流量 如秒杀 批量上架 2.主链路规划 不可缺少的环节 如果缺少了就无法形成完整的服务 如图营销计算就是一个服务业务 3.领域模型拆分DDD 4.用户群体拆分 2C 2B

【.net/.net core】使用System.Web.HttpUtility.UrlDecode处理web请求编码问题

问题场景:将数据已JSON字符串写入请求内容后,在接收端接收数据时,数据内容为URL编码后的内容,需要先将接收的字符串数据URL解码后才可转换为数据对象 解决办法:使用System.Web.HttpUtility.UrlDecode(string s)方法对…