标签(空格分隔): Python

读入读出通常可以划分为几个大类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据,利用Web API操作网络资源。

读写文本格式的数据

pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,如下表所示:

函数

说明

read_csv

从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为,

read_table

从文件、URL、文件型对象中加载带分隔符的数据,默认的分隔符为制表符"\t"

read_fwf

读取定宽列格式数据 -- 木有分隔符的

read_clipboard

读取剪贴板中的数据,可以看做read_table的剪贴板。将网页转换为表格时很有用

for example:

In[]: import pandas as pd

In[]: df = pd.read_csv('ex1.csv') # ''内写入文件所在的详细目录

In[]: df = pd.read_table('ex1.csv', sep = ',') # 或者使用table并指定分隔符

# 当你要读入的文件没有标题行时:

In[]: df = pd.read_csv('ex2.csv', header = None) # 让pandas为其分配默认的列名

In[]: df = pd.read_csv('ex2.csv', names = ['a','b','c','d','message']) # 自己定义标题行

In [8]: names = ['a','b','c','d','message']

# 让其中的某列作为列索引

In [9]: pd.read_csv('ex2.csv', names = names, index_col = 'message')

Out[9]:

a b c d

message

hello 1 2 3 4

world 5 6 7 8

foo 9 10 11 12

In[]: pd.read_csv('ex4.csv', skiprows = [0, 2, 3]) # 略过第0,2,3行不读取

# 用一个字典为各列指定不同的NA标记值

In[]: patterns = {'message':['foo', 'NA'], 'something':['two']}

In[]: pd.read_csv('ex5.csv', na_values=patterns)

read_csv/read_table函数的参数

参数

说明

path

表示文件系统位置、URL、文件型对象的字符串

sep/delimiter

用于对行中各字段进行拆分的字符序列或正则表达式

header

用作列名的行号。如果没有header行就应该设置为None

index_col

用作行索引的列编号或列名,可以是单个名称/数字或由多个名称/数字组成的列表

names

用于结果的列名列表,结合header = None

skiprows

需要忽略的行数

na_values

一组用于替换NA的值

comment

用于将注释信息从行尾拆分出去的字符

parse_dates

尝试将数据解析为日期

nrows

需要读取的行数

skip_footer

需要忽略的行数

逐块读取文本文件

In[]: pd.read_csv('ex6.csv', nrows=5)

将数据写出到文本

In[]: data = pd.read_csv('ex5.csv')

In[]: data.to_csv('out.csv') # 将data中的数据写出到当前目录中的out.csv中

In[]: data.to_csv(sys.stdout, sep='|') # 打印到屏幕

In[]: data.to_csv(sys.stdout, na_rep='NULL') # 空字符处显示为NULL

In[]: data.to_csv(sys.stdout, index=False, header=False) # 禁用行和列的标签

In[]: data.to_csv(sys.stdout, index=False, cols=['a', 'b', 'c']) # 按照指定的顺序显示列

# Series中的to_csv方法

In [39]: dates = pd.date_range('1/1/2000', periods = 7)

In [40]: dates

Out[40]:

DatetimeIndex(['2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04', '2000-01-05', '2000-01-06', '2000-01-07'], dtype='datetime64[ns]', freq='D')

In [45]: ts = Series(np.arange(7), index = dates)

In [46]: ts

Out[46]:

2000-01-01 0

2000-01-02 1

2000-01-03 2

2000-01-04 3

2000-01-05 4

2000-01-06 5

2000-01-07 6

Freq: D, dtype: int64

In [47]: ts.to_csv('tseries.csv')

In [48]: cat tseries.csv

2000-01-01,0

2000-01-02,1

2000-01-03,2

2000-01-04,3

2000-01-05,4

2000-01-06,5

2000-01-07,6

In[]: Series.from_csv('tseries.csv',parse_dates = False) # 从文件中读入到Series

手工处理分隔符

In [50]: cat ex7.csv

"a","b","c"

"1","2","3"

"1","2","3","4"

In [51]: import csv

In [52]: f = open('ex7.csv')

In [53]: reader = csv.reader(f)

In [54]: for line in reader:

...: print line

...:

['a', 'b', 'c']

['1', '2', '3']

['1', '2', '3', '4']

# 可以对数据做一些处理

In[]: lines = list(csv.reader(open('ex7.csv')))

In[]: header, values = lines[0], lines[1:]

In[]: data_dict = {h:v for h,v in zip(header, zip(*values))}

CSV语支选项

参数

说明

delimiter

用于分割字段的单字符字符串,默认为','

lineterminator

用于写操作的行结束符,默认为'\r\n'。读操作将忽略此选项

quotechar

用于带有特殊字符的字段的引用符号,默认为'"'

JSON数据

JSON(JavaScript Object Notation)已经成为通过HTTP请求在Web浏览器和其他应用程序之间发送数据的标准格式之一。

import json

In [65]: obj = """{"name":"Wes", "places_lived":["United States", "Spain", "Germany"], "pet":nu

...: ll, "siblings":[{"name":"Scott","age":25,"pet":"Zuko"},{"name":"Katy","age":33,"pet":"

...: Cisco"}]}"""

In [68]: res = json.loads(obj) # 将JSON字符串转换为Python形式

In [69]: res

Out[69]:

{u'name': u'Wes',

u'pet': None,

u'places_lived': [u'United States', u'Spain', u'Germany'],

u'siblings': [{u'age': 25, u'name': u'Scott', u'pet': u'Zuko'},

{u'age': 33, u'name': u'Katy', u'pet': u'Cisco'}]}

# 将Python转换为json

In [71]: asjson = json.dumps(res)

In [72]: asjson

Out[72]: '{"pet": null, "siblings": [{"pet": "Zuko", "age": 25, "name": "Scott"}, {"pet": "Cisco", "age": 33, "name": "Katy"}], "name": "Wes", "places_lived": ["United States", "Spain", "Germany"]}'

In[]: data = DataFrame(res['siblings'], columns=['name', 'age'])

In [75]: data

Out[75]:

name age

0 Scott 25

1 Katy 33

使用HTML和Web API

import requests

In[]: url = 'http://www.baidu.com'

In[]: resp = requests.get(url)

In[]: import json

In[]: data = json.loads(resp.text) # Response对象的text属性含有GET请求的内容,大多返回JSON对象,加载到Python对象中

In[]: data.keys()

使用数据库

In[]: import sqlite3

In[]: query = """create table test(a varchar(20), b varchar(20), c real, d integer);"""

In[]: con = sqlite3.connect(':memory:') # 连接数据库

In[]: con.execute(query)

In[]: con.commit()

In[]: data = [('Atlanta', 'Georgia', 1.25, 6), ('Tall', 'Flor', 2.6, 3), ('Saca', 'Calif', 1.7, 5)]

In[]: stmt = "insert into test values(?, ?, ?, ?)"

In[]: con.execute(stmt, data)

In[]: con.commit()

In[]: datas = con.execute('select * from test')

In[]: lines = datas.fetchall() # 从表中读取数据,将返回一个元祖列表

In[]: datas.description # 获得列名

In[]: DataFrame(rows, columns=zip(*datas.description)[0])

In[]: import pandas.io.sql as sql

In[]: sql.read_frame('select * from test', con) # 传入sql语句和连接对象

python如何读取数据保存为新格式_Python -- 数据加载、存储与文件格式相关推荐

  1. python如何读取数据保存为新格式_Python Numpy中数据的常用保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  2. python如何读取数据保存为新格式_python,初学者应用实例:读取文件中的数据,将将北京时间转换成世界时间,再保存成新的CSV格式文件...

    数据格式转换是科研工作中经常需要完成的任务.本程序实现了这个功能.将文本文件"TableS1.dat"中的数据读取,原文件格式为: No Date Time Mag Dis 119 ...

  3. 【python数据分析】将爬取的数据保存为csv格式

    数据保存为csv格式 csv文件 python的csv模块 从csv文件读取内容 写入csv文件 运用实例 数据准备 将数据存为字典的形式 存储到csv文件 csv文件 一种用逗号分割来实现存储表格数 ...

  4. python爬取json数据_Python爬取数据保存为Json格式的代码示例

    python爬取数据保存为Json格式 代码如下: #encoding:'utf-8' import urllib.request from bs4 import BeautifulSoup impo ...

  5. Python编程语言学习:将多个列表数据保存为dataframe格式数据并按照指定列进行降序排序之详细攻略

    Python编程语言学习:将多个列表数据保存为dataframe格式数据并按照指定列进行降序排序之详细攻略 目录 将多个列表数据保存为dataframe格式数据并按照指定列进行降序排序之详细攻略 输出 ...

  6. php连接数据库返回数据类型,php从数据库读取数据,并以json格式返回数据的方法...

    php中,从数据库读取数据,并以json格式返回数据.具体方法如下: 第一步,定义相关变量 $servername = "localhost"; $username = " ...

  7. Labelme标注的json数据转化为coco格式的数据

    Labelme标注的json数据转化为coco格式的数据 1. 转化方法一 2. 转化方法二 1. 转化方法一 import os import json import numpy as np imp ...

  8. SSM 实训笔记 -10- 使用 sessionStorage 存储数据、js 图片验证码、登录加载动画

    SSM 实训笔记 -10- 使用 sessionStorage 存储数据.js 图片验证码.登录加载动画 本篇内容: (1)在登录成功时,使用 sessionStorage 存储用户的用户名,并在登录 ...

  9. docker保存镜像、打包tar、加载tar镜像

    前言 本文记录docker保存镜像.打包tar.加载tar镜像. 一.docker保存镜像 作用:在现在容器镜像上保存镜像进行打包,在另一台服务上使用:或现有的容器安装了一些库,配置了开发环境,需要保 ...

最新文章

  1. ehcache导致Tomcat重启出错
  2. 改写URL的查询字符串QUERY_STRING(转)
  3. python中文叫什么意思-在python中,“~”是什么意思?
  4. c语言小项目---通讯录2.0
  5. 初识Mysql(part14)--我需要知道的6个关于创建表的小知识
  6. java 构建者模式_Java方法中的参数太多,第3部分:构建器模式
  7. C语言怎么合并两个有序链表
  8. spring整合hibernate出现HibernateException: Unable to get the default Bean Validation factory
  9. python解析properties文件
  10. C语言:fseek与ftell函数
  11. C#网络编程技术FastSocket实战项目演练
  12. 13.设计模式--外观模式(Facade模式)
  13. HTTP无状态协议到底指的什么?
  14. ROUGE评价算法学习
  15. STM32CubeMX系列08——SPI通信(W25Q64、NRF24L01无线模块)
  16. pdf压缩的网站?pdf文件在线压缩?在线压缩pdf文件大小?pdf文档压缩,在线压缩pdf文件大小,压缩pdf大小的方法?
  17. c++ 把类型作为参数
  18. Android 高质量开发之崩溃优化,kotlin协程跟线程
  19. 电子电路仿真(Matlab代码实现)
  20. wma转mp3怎么弄_如何将wma格式转换成mp3格式?

热门文章

  1. 天气未能成为空调市场助力,格力等空调老大或发起价格战
  2. ubuntu16.04调试5G模组ZM9000
  3. [CANFD] 高波特率下收发器延时的处理机制-Transceiver delay compensation
  4. Web Form ,winform ,
  5. postgreSQL与postGIS安装过程中遇到的坑及解决
  6. flink+drools动态规则示例之温度跳变告警
  7. 2022-2028年全球及中国斯特林发动机行业投资前景分析
  8. 那些证书相关的玩意儿
  9. 无法在windows资源管理器中查看此FTP站点
  10. 【王卓】数据结构与算法图(九)