使用python读取数据科学最常用的文件格式(转)

Author:kevinelstri
DateTime:2017/3/13


译文:How to read most commonly used file formats in Data Science (using Python)?


1、什么是文件格式?

文件格式是在文件中存储信息的一种标准方法。首先,文件格式指定文件是一个二进制或ASCII文件。其次,文件展示了文件的组织形式。例如,逗号分隔值(CSV)文件格式存储在纯文本的表格数据。


image.png

2、为什么数据科学家需要懂得不同的文件格式?

通常,你遇到的文件都取决于你使用的应用。例如,在一个图像处理系统中,你需要将图像文件作为输入输出,所以你会看到一个JPEG,GIF或PNG格式。
作为数据科学家,你需要了解各种文件格式的底层结构以及它们的优缺点等。除非你了解了数据的底层结构,否则你不能够去探索它。而且,有时你需要决定怎么去存储数据。
选择最佳的文本格式来存储数据可以提高你的模型在数据处理中的性能。

3、使用python如何读取不同的文件格式?

3.1 csv

CSV格式属于电子表格文件格式。
那么什么是电子表格文件格式呢?
在电子表格文件格式中,数据存储在单元格中。每个单元格按照行和列结构进行组织。电子表格中的列可以有不同的数据类型。例如,一列可以是字符串类型,日期类型或整数类型。最流行的电子表格文件格式就是CSV格式,xls格式和xlsx格式。
CSV中的每一行代表一个观察,通常称为一条记录。每个记录可以包含一个或多个由逗号分隔的字段。
有时,你可能会看到文件中不使用逗号分隔,但是使用制表符进行分隔,这样的文件格式称为TSV(制表符分隔值)文件格式。
下面是将CSV文件使用Notepad打开的结果:

image.png
import pandas as pd
pf = pd.read_csv('train.csv')

3.2 XLSX

xlsx是微软Excel打开XML文件格式,它也是电子表格文件格式,它是基于XML格式创建的Excel。xlsx数据是在一个表的单元格和列下组织的,每一个xlsx文件可以包含多于一个的表格,因此工作簿可以包含多个表。
下面的图像显示一个“xlsx文件是微软Excel打开:

image.png

在上面的图像中,你可以看到文件中存在多个表,包含客户、雇员、发票和订单,图像显示的数据只有一个表-“发票”。

import pandas as pd
pf = pd.read_excel('train.xlsx',sheetname = 'invoice')

3.3 ZIP

zip格式是存档文件格式。
在归档文件格式中,创建一个包含多个文件以及元数据的文件。归档文件格式用于将多个数据文件收集到一个文件中。这样做是为了简单地压缩文件,使用更少的存储空间。
有许多流行的计算机数据存档格式创建归档文件。ZIP,RAR和Tar是最流行的基于数据压缩的存档文件格式。
所以,一个ZIP文件格式是一种无损压缩格式,这意味着如果你使用zip格式压缩多个文件,解压缩后,可以完全恢复数据。zip文件格式使用许多压缩算法压缩文档。您可以轻松地识别ZIP文件的ZIP扩展名。

import zipfile
archive = zipfile.ZipFile('T.zip', 'r')
df = archive.read('train.csv')

3.4 TXT纯文本格式

在纯文本文件格式,一切都写在纯文本。通常,这个文本是非结构化的,并且没有与它相关的元数据。txt格式的文件可以很容易地通过任何程序进行读取。但是通过计算机程序来编译是非常困难的。
举一个简单的文本文件示例,下面的示例显示包含文本的文本文件数据:

“In my previous article, I introduced you to the basics of Apache Spark, different data representations
(RDD / DataFrame / Dataset) and basics of operations (Transformation and Action). We even solved a machine
learning problem from one of our past hackathons. In this article, I will continue from the place I left in
my previous article. I will focus on manipulating RDD in PySpark by applying operations
(Transformation and Actions).”

text_file = open("text.txt", "r")
lines = text_file.read()

3.5 JSON

Javascript对象符号(JSON)是一个基于文本的开放标准的数据交换网络设计。JSON格式用于在网上传输结构化数据。JSON格式的文件可以很容易地使用任何编程语言来读取,因为它是独立于语言的数据格式。
以一个JSON文件为实例,下面显示了一个典型的JSON文件存储信息的员工信息:

{
   "Employee": [
    {
        "id":"1",
        "Name": "Ankit",
        "Sal": "1000",
    },
    {
        "id":"2",
        "Name": "Faizy",
        "Sal": "2000",
    }
   ]
}

读取JSON文件:

import pandas as pd
df = pd.read_json('train.json')

3.6 XML

XML也称为可扩展标记语言。顾名思义,它是一种标记语言。它具有一定的编码数据规则。XML文件格式是一个人类可读和机器可读的文件格式。XML的自描述性语言设计用于通过Internet发送信息。XML是HTML非常相似,但有一些差异。例如,XML不使用预定义的标签为HTML。
以XML文件格式的简单例子,下面显示了一个 XML文档,包含一个员工的信息:

<?xml version="1.0"?>
<contact-info>

<name>Ankit</name>

<company>Anlytics Vidhya</company>

<phone>+9187654321</phone>

</contact-info>

读取XML文件:

import xml.etree.ElementTree as ET
tree = ET.parse('/home/sunilray/Desktop/2 sigma/train.xml')
root = tree.getroot()
print root.tag

3.7 HTML

HTML代表超文本标记语言,它是用于创建网页的标准标记语言,HTML是用来描述网页结构使用的标记。HTML标签类似于XML但是是预定义的。可以很容易地识别的HTML文档分段标签,如<head>代表HTML文档的标题,<BR>“HTML段落段落”,并且HTML是不区分大小写的。
下面显示一个HTML文档:

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body><h1>My First Heading</h1>
<p>My first paragraph.</p></body>
</html>

读取HTML文件:
使用BeautifulSoup库来读取HTML文件,参考:使用BeautifulSoup进行网络爬虫

3.8 images

图像文件可能是数据科学中最迷人的文件格式。任何计算机视觉中的应用是基于图像处理过程的,所以有必要了解不同的图像文件格式。
常见的图像文件是三维的,有RGB值。但是,他们也可以是二维(灰度)或四维(有强度),图像是由像素和与其相关的元数据构成的。
每个图像由一个或多个像素帧组成,每个帧是由二维数组的像素值,像素值可以是任何强度。元数据与图像是相关的,可以是一个图像类型(PNG)或像素尺寸。
读取png图片:

from scipy import misc
f = misc.face()
misc.imsave('face.png', f) # uses the Image module (PIL)
import matplotlib.pyplot as plt
plt.imshow(f)
plt.show()  

如果想阅读关于图像处理的文章,可以参考:基于python的图像处理基础

3.9 HDF

在分层数据格式(HDF),您可以很容易存储大量的数据。它不仅用于存储高容量或复杂的数据,而且还用于存储小体积或简单的数据。
使用HDF的优点:

  • 它可用于各种规模和类型的系统

  • 它具有灵活,高效的存储和快速I/O.

  • 多格式支持HDF

    现在有多个HDF格式。但是,HDF5是最新的版本,它用来解决一些老的HDF文件格式的限制。HDF5格式与XML相似,像XML,HDF5文件都是自描述的,允许用户指定复杂的数据关系和依赖关系。
    以一个HDF5文件格式为例,可以识别以.h5为扩展的文件:

image.png

读取HDF5文件:

import pandas as pd
df = pd.read_hdf('train.h5')

3.10 PDF

PDF(Portable Document Format)是通过结合图形来解释和文本显示的格式结合,一个PDF文件的特点在于它可以通过密码保护。


image.png

安装pdfminer库:

python setup.py install

读取PDF文件:

pdf2txt.py train.pdf  # 测试读取pdf

3.11 docx

微软Word的docx文件是另一种文件格式,它是基于文本的数据组织的。它有许多特点,如表格的内联加法,图像、超链接等,这有助于在一个非常重要的文件格式。
docx文件对于PDF文件,具有的优点就是docx文件是可编辑的。你也可以把docx文件转换成任何其他格式。


image.png

安装docx2txt库:

pip install docx2txt

读取docx文件:

import docx2txt
text = docx2txt.process("file.docx")

3.12 mp3

MP3文件格式来自于多媒体文件格式,多媒体文件格式类似于图像文件格式,但它们恰好都是最复杂的文件格式。
在多媒体文件格式中,您可以存储各种数据,如文字图像,图形,视频和音频数据。例如,一个多媒体格式可以允许文本被存储为富文本格式(RTF)的数据而非ASCII数据,这是一个纯文本格式。
MP3是一种最常见的音频编码格式的数字音频。一个MP3文件格式采用的MPEG-1编码格式为视频和音频压缩标准。在有损压缩中,一旦压缩原始文件,则无法恢复原始数据。
一个MP3文件格式过滤掉人类无法听到的声音,压缩了音频的质量。MP3压缩通常减小达到75%至95%,从而节省了大量的空间。
一个MP3文件有许多框架。框架可以进一步分为标题和数据块。我们称这些序列的框架是基本流。
在MP3的头部,找出有效的框架和一个数据块的开始包含(压缩)在频率和振幅的音频信息。
下面是MP3文件结构:下载

image.png

读取多媒体文件格式:
参考:PyMedia

3.13 mp4

MP4文件格式用于存储视频和电影。它包含多幅图像(称为帧),从而起到在一个视频形式为每一个特定的时间。两种方法来解释mp4,一个是一个封闭的实体,其中整个视频被认为是一个单一的实体。另一个是马赛克的图像,其中在视频中的每个图像被认为是作为一个不同的实体,这些图像从视频进行采样。

image.png

读取MP4文件:
参考:MoviePy

from moviepy.editor import VideoFileClip
clip = VideoFileClip(‘<video_file>.mp4’)

参考文献

http://blog.csdn.net/kevinelstri/article/details/61921812

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容