3.2:pandas数据的导入与导出【CSV,JSON】
一:CSV数据
一】:导入数据
1)从CSV文件读入数据:pd.read_csv("文件名"),默认以逗号为分隔符
D:\data\ex1.csv文件内容: D:\data\ex2.csv文件内容
a,b,c,d,message 1,2,3,4,hello
1,2,3,4,hello 5,6,7,8,world
5,6,7,8,world 9,10,11,12,foo
9,10,11,12,foo
- In [3]: df1 = pd.read_csv('D:\data\ex1.csv') #打开后默认添加index为从0自增长,columns默认用第一行数据
- In [4]: df1
- Out[4]:
- a b c d message
- 0 1 2 3 4 hello
- 1 5 6 7 8 world
- 2 9 10 11 12 foo
- In [15]: df2 = pd.read_csv('D:\data\ex2.csv')
- In [16]: df2
- Out[16]:
- 1 2 3 4 hello
- 0 5 6 7 8 world
- 1 9 10 11 12 foo
- In [17]: df2 = pd.read_csv('D:\data\ex2.csv',header=None) #header参数指定columns都为从0自增长的数
- In [18]: df2
- Out[18]:
- 0 1 2 3 4
- 0 1 2 3 4 hello
- 1 5 6 7 8 world
- 2 9 10 11 12 foo
- In [8]: df2 = pd.read_csv('D:\data\ex2.csv',names=list('abcde')) #用names参数指定columns的值
- In [9]: df2
- Out[9]:
- a b c d e
- 0 1 2 3 4 hello
- 1 5 6 7 8 world
- 2 9 10 11 12 foo
- In [13]: df2 = pd.read_csv('D:\data\ex2.csv',names=list('abcde'),index_col='e') #用index_col用指定的columns首元素作为index
- In [14]: df2
- Out[14]:
- a b c d
- e
- hello 1 2 3 4
- world 5 6 7 8
- foo 9 10 11 12
2)其他格式:pd.read_table('文件名', sep='划分依据'),划分依据可用正则表达式【\s:空格等不可见字符】
注:read_table方法几乎可以读所有的表格型数据,包括txt,csv等等
D:\data\ex3.txt D:\data\ex4.txt
A B C D A B C
aaa -0.2 -1.02 -0.62 aaa -0.2 -1.02 -0.62
bbb 0.93 0.3 -0.03 bbb 0.93 0.3 -0.03
ccc -0.26 -0.39 -0.22 ccc -0.26 -0.39 -0.22
ddd -0.87 -0.35 1.1 ddd -0.87 -0.35 1.1
- In [37]: df1 = pd.read_table('D:\data\ex3.txt',sep='\s+')
- In [38]: df1
- Out[38]:
- A B C #以最小列数为准,取dataframe数据,且第一行数据作为columns,剩下的如果第一列作为多出则作为index,否者从0自增数作为index
- aaa -0.20 -1.02 -0.62
- bbb 0.93 0.30 -0.03
- ccc -0.26 -0.39 -0.22
- ddd -0.87 -0.35 1.10
- In [44]: df2 = pd.read_table('D:\data\ex4.txt',sep='\s+')
- In [45]: df2
- Out[45]:
- D A B C
- aaa -0.20 -1.02 -0.62
- bbb 0.93 0.30 -0.03
- ccc -0.26 -0.39 -0.22
- ddd -0.87 -0.35 1.10
3)扩展技巧
read_csv/read_table函数参数
D:\data\ex5.csv D:\data\ex6.csv
#hey! something,a,b,c,d,message
a,b,c,d,message one,1,2,3,4,NA
#just wanted to make things two,5,6,,8,world
#who are you three,9,10,11,12,foo
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
- In [46]: df5 = pd.read_csv('D:\data\ex5.csv')
- In [47]: df5
- Out[47]:
- #hey!
- a b c d message
- #just wanted to make things NaN NaN NaN NaN
- #who are you NaN NaN NaN NaN
- 1 2 3 4 hello
- 5 6 7 8 world
- 9 10 11 12 foo
- In [48]: df5 = pd.read_csv('D:\data\ex5.csv',skiprows=[0,2,3])
- In [49]: df5
- Out[49]:
- a b c d message
- 0 1 2 3 4 hello
- 1 5 6 7 8 world
- 2 9 10 11 12 foo
- In [59]: df5 = pd.read_csv('D:\data\ex6.csv',nrows = 2)
- In [60]: df5
- Out[60]:
- something a b c d message
- 0 one 1 2 3 4 NaN
- 1 two 5 6 NaN 8 world
- In [55]: df6 = pd.read_csv('D:\data\ex6.csv',na_values={'message':['foo','NA'],'something':['two']})
- In [56]: df6
- Out[56]:
- something a b c d message
- 0 one 1 2 3 4 NaN
- 1 NaN 5 6 NaN 8 world
- 2 three 9 10 11 12 NaN
二】 数据的写出:to_csv('文件名' , [index=..., header=...] )
- In [7]: df = pd.read_csv('D:\data\ex1.csv',header=None)
- In [8]: df
- Out[8]:
- 0 1 2 3 4
- 0 a b c d message
- 1 1 2 3 4 hello
- 2 5 6 7 8 world
- 3 9 10 11 12 foo
- In[9]:df.to_csv('D:\data\out1.csv')
- In[10]:df.to_csv('D:\data\out2.csv',index=False,header=False) #即是把index和columns都弃掉,header表示columns
二:JSON格式
Json类型基本数据类型有对象(字典),数组(列表),字符串,数值,bool 以及 null。
注:若是字典,键的类型必须是string
- In [22]: js = """{
- ....: "name":"Wes",
- ....: "places_lived":["US","Spain","Germany"],
- ....: "pet":null,
- ....: "siblings":[{"name":"Scott","age":25,"pet":"Zuko"},
- ....: {"name":"Katie","age":33,"pet":"Cisco"}]}
- ....: """
- In [26]: import json
- In [27]: data = json.loads(js) #将json格式转化为python格式
- In [28]: data
- Out[28]:
- {u'name': u'Wes',
- u'pet': None,
- u'places_lived': [u'US', u'Spain', u'Germany'],
- u'siblings': [{u'age': 25, u'name': u'Scott', u'pet': u'Zuko'},
- {u'age': 33, u'name': u'Katie', u'pet': u'Cisco'}]}
- In [29]: #a_js = json.dumps(data) #将python格式转化为json格式
- #最简单构造方法就是提取其中的数据,注意columns list中的值对应json数据中的需要提取的键并将其作为columns
- In [31]: siblings = pd.DataFrame(data['siblings'],columns=['name','age'])
- In [32]: siblings
- Out[32]:
- name age
- 0 Scott 25
- 1 Katie 33
三:XML与HTML
pass
四:二进制 179
pass
五:Excel 180
pass
七:HTML 与 Web API 181
许多网站提供基于json格式的数据API,通过request等库可以获取
pass
六:数据库 182
pass
七:MongDB
184
3.2:pandas数据的导入与导出【CSV,JSON】的更多相关文章
- 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...
- 基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出
数据的导入导出,在很多系统里面都比较常见,这个导入导出的操作,在Winform里面比较容易实现,我曾经在之前的一篇文章<Winform开发框架之通用数据导入导出操作>介绍了在Winform ...
- Oracle 数据的导入和导出(SID service.msc)
一:版本号说明: (1)(Oracle11 32位系统)Oracle - OraDb11g_home1: (2)成功安装后显演示样例如以下:第一个图是管理工具.创建连接.创建表:第二个是数据库创建工 ...
- Matlab文件和数据的导入与导出
ref: https://blog.csdn.net/zengzeyu/article/details/72530596 Matlab文件和数据的导入与导出 2017年05月19日 15:18:35 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
http://www.cnblogs.com/wuhuacong/p/4777720.html 在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能 ...
- 使用PHP导入和导出CSV文件
我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...
- 【转】使用PHP导入和导出CSV文件
项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能.我们先准备mysql数据表 ...
- HBase数据的导入和导出
查阅了几篇中英文资料,发现有的地方说的不是很全部,总结在此,共有两种命令行的方式来实现数据的导入导出功能,即备份和还原. 1 HBase本身提供的接口 其调用形式为: 1)导入 ./hbase org ...
- Hive中数据的导入与导出
最近在做一个小任务,将一个CDH平台中Hive的部分数据同步到另一个平台中.毕竟我也刚开始工作,在正式开始做之前,首先进行了一段时间的练习,下面的内容就是练习时写的文档中的内容.如果哪里有错误或者疏漏 ...
随机推荐
- js子窗口修改父窗口内容
在框架中,我用 JavaScript 获取 JSON 数据,组织成 HTML 代码,最后将其填充至上层文档的一个元素中.按照一般的写法,我们需要用到类似如下的语句: 1.window.parent.d ...
- jquery实现定时调度(倒计时)
工作需要实现了倒计时的脚本,代码如下: /** * 倒计时 * @param infoId :信息显示的id 最好是用span包裹 * @param callback:倒计时结算后的回调 */ fun ...
- PHP MYSQL读取中文乱码的解决办法
其他试了很多种办法,结果最直接最简单的办法就是在SELECT前先发送设置.如下 mysqli_query($con,"SET NAMES 'UTF8'"); mysqli_quer ...
- 用javascript预加载图片、css、js的方法研究
预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提 ...
- php empty和isset的区别
通过一个例子来解释一下, $id = 0 empty($id) 的值是true isset($id) 也是true. empty 和isset 处理对象无外乎 未定义常量 .0 .空字符串 如果变量 ...
- Poweroff – 很好很强大的定制关机工具
Poweroff – 很好很强大的定制关机工具 Poweroff 是一个用来管理电脑关机系统的小工具,支持定时,支持远程 作者开放源代码,有兴趣的同学可以尝试着制作一下汉化版本. 可以设定不同时间 ...
- 真正的手机破解wifi密码,aircrack-ng,reaver,仅限mx2(BCM4330芯片)
仅限mx2(BCM4330芯片),mx可能有戏没测试(BCM4329?),mx3不行. PS:原生安卓应用,非虚拟机 reaver,不知道是啥的看这里http://tieba.baidu.com/p/ ...
- Ubuntu 查看和杀死进程[转]
今天在netbeans中关闭webrick时,发现没有关闭掉,打入localhost:3000 依然显示页面,发现无法从nb中再次关闭只有进入ubuntu的进程下关闭查看进程:1法,ps -e 命令 ...
- [JavaScript] JavaScript作用域深度解析
JavaScript作用域 JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里. -- JS权威指南 在JS里,一切皆对象,函数也是. 一.有什么用 什么时候会用到它? ...
- ECMA 6 记入
好书推荐 : http://es6.ruanyifeng.com/ String.prototype -includes, startsWith, endsWith -padStart, padEnd ...