pandas--->CSV / JSON

csv

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

CSV 是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。Pandas 可以很方便的处理 CSV 文件,本文以 nba.csv 为例,你可以下载 nba.csv 或打开 nba.csv 查看。

实例1

import pandas as pddf = pd.read_csv('nba.csv')print(df)

to_string()

to_string() 用于返回 DataFrame 类型的数据,如果不使用该函数,则输出结果为数据的前面 5 行和末尾 5 行,中间部分以 ... 代替。

import pandas as pddf = pd.read_csv('nba.csv')print(df.to_string())

to_csv()  

我们也可以使用 to_csv() 方法将 DataFrame 存储为 csv 文件:

import pandas as pd # 三个字段 name, site, age
nme = ["Google", "Runoob", "Taobao", "Wiki"]
st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 98]# 字典
dict = {'name': nme, 'site': st, 'age': ag} df = pd.DataFrame(dict)# 保存 dataframe
df.to_csv('site.csv')

数据处理

head()

head( n ) 方法用于读取前面的 n 行,如果不填参数 n ,默认返回 5 行。

import pandas as pddf = pd.read_csv('nba.csv')print(df.head())

tail()

tail( n ) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN

import pandas as pddf = pd.read_csv('nba.csv')print(df.tail())

 info()

info() 方法返回表格的一些基本信息:

import pandas as pddf = pd.read_csv('nba.csv')print(df.info())

输出结果为:

json

JSON(JavaScript Object Notation,JavaScript 对象表示法),是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析,更多 JSON 内容可以参考 JSON 教程。

Pandas 可以很方便的处理 JSON 数据,本文以 sites.json 为例,内容如下:

实例

[{"id": "A001","name": "菜鸟教程","url": "www.runoob.com","likes": 61},{"id": "A002","name": "Google","url": "www.google.com","likes": 124},{"id": "A003","name": "淘宝","url": "www.taobao.com","likes": 45}
]
import pandas as pddf = pd.read_json('sites.json')print(df.to_string())

to_string()

import pandas as pddata =[{"id": "A001","name": "菜鸟教程","url": "www.runoob.com","likes": 61},{"id": "A002","name": "Google","url": "www.google.com","likes": 124},{"id": "A003","name": "淘宝","url": "www.taobao.com","likes": 45}
]
df = pd.DataFrame(data)print(df)

以上实例输出结果为:

JSON 对象与 Python 字典具有相同的格式,

所以我们可以直接将 Python 字典转化为 DataFrame 数据:

import pandas as pd# 字典格式的 JSON                                                                                              
s = {"col1":{"row1":1,"row2":2,"row3":3},"col2":{"row1":"x","row2":"y","row3":"z"}
}# 读取 JSON 转为 DataFrame                                                                                           
df = pd.DataFrame(s)
print(df)

以上实例输出结果为:

内嵌的 JSON 数据

假设有一组内嵌的 JSON 数据文件 nested_list.json :

{"school_name": "ABC primary school","class": "Year 1","students": [{"id": "A001","name": "Tom","math": 60,"physics": 66,"chemistry": 61},{"id": "A002","name": "James","math": 89,"physics": 76,"chemistry": 51},{"id": "A003","name": "Jenny","math": 79,"physics": 90,"chemistry": 78}]
}

实例

import pandas as pddf = pd.read_json('nested_list.json')print(df)

以上实例输出结果为:

json_normalize()

import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open('nested_list.json','r') as f:data = json.loads(f.read())# 展平数据
df_nested_list = pd.json_normalize(data, record_path =['students'])
print(df_nested_list)

以上实例输出结果为

 json_normalize() 使用了参数 record_path

data = json.loads(f.read()) 使用 Python JSON 模块载入数据。

json_normalize() 使用了参数 record_path 并设置为 ['students'] 用于展开内嵌的 JSON 数据 students

显示结果还没有包含 school_name 和 class 元素,如果需要展示出来可以使用 meta 参数来显示这些元数据:

import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open('nested_list.json','r') as f:data = json.loads(f.read())# 展平数据
df_nested_list = pd.json_normalize(data, record_path =['students'], meta=['school_name', 'class']
)
print(df_nested_list)

以上实例输出结果为:

 读取更复杂的 JSON 数据

nested_mix.json 文件内容

{"school_name": "local primary school","class": "Year 1","info": {"president": "John Kasich","address": "ABC road, London, UK","contacts": {"email": "admin@e.com","tel": "123456789"}},"students": [{"id": "A001","name": "Tom","math": 60,"physics": 66,"chemistry": 61},{"id": "A002","name": "James","math": 89,"physics": 76,"chemistry": 51},{"id": "A003","name": "Jenny","math": 79,"physics": 90,"chemistry": 78}]
}
import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open('nested_mix.json','r') as f:data = json.loads(f.read())df = pd.json_normalize(data, record_path =['students'], meta=['class',['info', 'president'], ['info', 'contacts', 'tel']]
)print(df)

读取内嵌数据中的一组数据

以下是实例文件 nested_deep.json,我们只读取内嵌中的 math 字段:

{"school_name": "local primary school","class": "Year 1","students": [{"id": "A001","name": "Tom","grade": {"math": 60,"physics": 66,"chemistry": 61}},{"id": "A002","name": "James","grade": {"math": 89,"physics": 76,"chemistry": 51}},{"id": "A003","name": "Jenny","grade": {"math": 79,"physics": 90,"chemistry": 78}}]
}

这里我们需要使用到 glom 模块来处理数据套嵌,glom 模块允许我们使用 . 来访问内嵌对象的属性。第一次使用我们需要安装 glom:

pip3 install glom

import pandas as pd
from glom import glomdf = pd.read_json('nested_deep.json')data = df['students'].apply(lambda row: glom(row, 'grade.math'))
print(data)

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

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

相关文章

数据集笔记:T-drive 北京出租车轨迹数据

数据地址:T-Drive trajectory data sample - Microsoft Research 1 数据描述 此数据集包含了2008年2月2日至2月8日在北京期间10,357辆出租车的GPS轨迹。此数据集中的总点数约为1500万,轨迹的总距离达到了900万公里。图1显示了两个连续点之间的时间间隔和…

多数据源Pagehelper怎么配置

1.遇到的问题 若依增加多数据源,分页报错,查了下pagehelper也要修改配置。 官方配置: 官方文档:连接多数据源sqlServer使用分页的情况下报错,不使用分页时正常。 Issue #I3NJMR 若依/RuoYi - Gitee.com 我的配置&a…

基于springboot+vue的校园资产管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

睿趣科技:抖音开通蓝V怎么操作的

在抖音这个充满创意和活力的社交媒体平台上,蓝V认证成为了许多用户的梦想之一。蓝V认证不仅是身份的象征,还可以增加用户的影响力和可信度。但是,要在抖音上获得蓝V认证并不是一件容易的事情。下面,我们将介绍一些操作步骤&#x…

Nginx负载均衡详解

一、负载均衡介绍 1、负载均衡的定义 单体服务器解决不了并发量大的请求,所以,我们可以横向增加服务器的数量(集群),然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多…

Linux 读写锁

读写锁是一把锁 /*读写锁的类型 pthread_rwlock_tpthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr);int pthread_rwlock_destory(pthread_rwlock_t *rwlock);int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);int pt…

多台群晖实现按计划WOL网络自动唤醒数据冷备份

几年前买了2盘位的DS218,但是随着照片的增加已经不够用。年中购入了4盘位的群晖DS923、2块16T西数数企业级硬盘、1块2T intel企业级 SSD 1.什么是冷备份 冷备是离线备份,备份好的数据可以单独存取,定期冷备可以保证数据安全,适合…

设计模式篇---桥接模式

文章目录 概念结构实例总结 概念 桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 毛笔和蜡笔都属于画笔,假设需要有大、中、小三种型号的画笔,绘画出12种颜色,蜡笔需要3*1236支,毛笔需要…

Unity当中的灯光类型

文章目录 前言一、Directional平行光二、Point点灯三、Spot 聚光灯四、Area面光灯,只用于烘培 前言 Unity当中的灯光类型 一、Directional平行光 Unity当中最重要的灯管类型,类似现实中的太阳光 二、Point点灯 类似现实中的灯泡,萤火虫&a…

java版网页代码生成器系统myeclipse定制开发mysql数据库网页模式java编程jdbc生成无框架java web网页

一、源码特点 java版网页代码生成器系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使…

力扣:105. 从前序与中序遍历序列构造二叉树(Python3)

题目: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 来源:力扣(LeetCode) 链接:力扣&am…

指针笔试题讲解

文章目录 题目答案与解析1、234、5、6、7、8、 题目 int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }//由于还没学习结构体,这里告知结构体的大小是20个字节 //由于还没学习结…

第十二届钧瓷文化旅游节主题曲:让世界看见钧瓷的魅力

下面大禹智库是以产业,古镇,营销为主题专门为第十二届钧瓷文化旅游节创作的《让世界看见钧瓷的魅力》的歌词。 编辑搜图 古镇千年的沉淀,窑火燃烧的传说 传承着古老的技艺,匠人们用心铸就 钧瓷的魅力,吸引着世界的目光 这里的风景,如诗如画,如梦如幻 编辑搜图 钧瓷文…

QT程序打包图片无法正常显示

QT程序打包图片无法正常显示 环境: QT4.8.2VS2017opencv3.416 问题: 本机测试正常,图片可正常显示功能也可正常进行,但打包发送给没有环境数据的电脑上进行测试就会出现图片无法显示的问题。 原因: 并没有找到理论支撑…

代码随想录第34天 | 343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 /*** param {number} n* return {number}*/ var integerBreak function(n) {let dpnew Array(n1)dp.fill(1)for(let i3;i<n;i)for(let j1;j<i/2;j){dp[i] max(dp[i],max(j*(i-j),dp[i-j]*j))} function max(a,b){return a>b?a:b }return dp[n] }; 想…

Linxu下c语言实现socket+openssl数据传输加密

文章目录 1. Socket连接建立流程2、SocketSSL的初始化流程3、初始化SSL环境&#xff0c;证书和密钥4、SocketSSL 的c语言实现4.1 编写SSL连接函数4.2 编写加密服务端server.c4.3 编写加密客户端client.c 5、使用tcpdump检验源码获取 在进行网络编程的时候&#xff0c;我们通常使…

体育运动模板推荐

最近的朋友圈一半是晒国庆城市布置的美景的&#xff0c;一半当然就是杭州亚运会了。目前杭州亚运会正在如火如荼的进行中&#xff0c;绝美的开幕式&#xff0c;运动健儿们奋力拼搏的精神&#xff0c;在杭州亚运会的舞台上&#xff0c;每个人都是独一无二的英雄。亚运会的舞台&a…

C语言学习(1)—— 环境安装和配置

运行C语言和C程序需要安装MinGW和VSCode。 一. 安装MinGW 1、进入官网下载MinGW&#xff1a;https://sourceforge.net/projects/mingw-w64/files/ 2、解压缩 3、配置环境变量 4、检查是否安装成功 二. 安装VSCode 1、进入官网下载VSCode&#xff1a;https://code.visualstud…

Frp内网穿透

Frp简介 Frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 Frp工作原理&#xff1a; 服务端运行&#xff0c;监听一个主端口&#xff0c;等待…

如何扫描MSI安装文件的路径

今天有个需求&#xff0c;需要扫描已经安装应用, 其中有个华云桌面 其中的UninstallString 值是 MsiExec.exe /X{D20A661B-0CBA-4DE3-A1F6-353D8153725D} 无法直接获取其安装目录&#xff0c; MsiGetProductInfoW 等API INSTALLPROPERTY_INSTALLLOCATION 也不好使 自己写一个…