Python_数据分析

人工智能55

数据加载、存储与文件格式

6.1 读写文本格式的数据

pandas提供了一些用于将表格型数据读取为DataFrame对象的函数

read_csv:从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号
read_table:从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符

读入一个带有标题行的文件

#这里是通过Unix的cat shell命令将文件的原始内容打印到屏幕上
In [1]: !cat examples/ex1.csv
a,b,c,d,message
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo

由于该文件以逗号分隔,故可以使用read_csv将其读入一个DataFrame:

In [2]: df = pd.read_csv('examples/ex1.csv')
In [3]: df
Out[3]:
   a  b  c  d  message
0  1  2  3  4  hello
1  5  6  7  8  world
2  9 10 11 12  foo

还可以使用指定分隔符后的read_table:

In [4]: pd.read_table('examples/ex1.csv', sep=',')
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 [5]: !cat examples/ex2.csv
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo

可以让pandas为其分配默认的列名:

In [6]: pd.read_csv('examples/ex2.csv', header=None)
Out[6]:
   0  1  2  3  4
0  1  2  3  4  hello
1  5  6  7  8  world
2  9 10 11 12  foo

也可以自己定义列名:

In [7]: pd.read_csv('examples/ex2.csv', names=['a', 'b', 'c', 'd', 'message'])
Out[7]:
   a  b  c  d  message
0  1  2  3  4  hello
1  5  6  7  8  world
2  9 10 11 12  foo

假设要将message列做成DataFrame的索引,可以通过index_col参数指定:

In [8]: names = ['a', 'b', 'c', 'd', 'message']
In [9]: pd.read_csv('examples/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

将多个列做成一个层次化索引,只需将由列编号或列名组成的列表传给index_col参数即可

有时,有些表格不是用固定的分隔符去分隔字段的:

In [20]: list(open('examples/ex3.txt'))
Out[20]:
['           A         B         C\n',
'aaa -0.264438 -1.026059 -0.619500\n',
'bbb  0.927272  0.302904 -0.032399\n',
'ccc -0.264273 -0.386314 -0.217601\n',
'ddd -0.871858 -0.348382  1.100491\n']

这里的字段是被数量不同的空白字符隔开的。这种情况下,可以将一个正则表达式 \s+ 传给sep参数,即指定分隔符

\s表示匹配任何空白字符,包括空格、制表符、换页符等等

而 \s+ 则表示匹配任意多个上面的字符

缺失值处理是文件解析任务中的一个重要组成部分。缺失数据通常是空字符串,或用某个标记值表示。默认情况下,pandas会用一组经常出现的标记值进行识别,比如NaN

read_csv / read_table 函数的参数

Python_数据分析

Python_数据分析

逐块读取文本文件

在处理文件时,如果只想读取其中的几行,可以通过nrows进行指定:

#读取该文件的第六行数据
pd.read_csv('examples/ex6.csv', nrows=5)

要逐块读取文件,可以指定chunksize(行数),可以根据chunksize通过read_csv所返回的TextParser对象对文件进行逐块迭代

chunker = pd.read_csv('examples/ex6.csv', chunksize=1000)

TextParser还有一个get_chunk方法,可以读取任意大小的块

将数据写出到文本格式

数据也可以被输出为分隔符格式的文本

利用DataFrame的to_csv方法,可以将数据写到一个以逗号分隔的文件中(通过sep参数可以指定不同的分隔符)

data.to_csv('examples/out.csv')

缺失值在输出结果中默认会被表示为空字符串,通过na_rep参数可以指定其为别的标记值

默认情况下,行标签和列标签被写入输出中,可以通过指定参数来禁用:

[En]

The row and column labels are written by default in the output, which can be disabled by specifying parameters:

data.to_csv('examples/out.csv', index=False, header=False)

可以只写出一部分的列,并按指定顺序排列:

data.to_csv('examples/out.csv', columns=['a', 'b', 'c'])

Series也有to_csv方法

Original: https://blog.csdn.net/qq_53913035/article/details/123445541
Author: 雾里见
Title: Python_数据分析

相关文章
matlab语音识别系统 人工智能

matlab语音识别系统

基于MATLAB VQ算法的说话人识别系统[声纹系统,GUI界面] 课题介绍 基于VQ的说话人识别系统,矢量量化起着双重作用。在训练阶段,把每一个说话者所提取的特征参数进行分类,产生不同码字所组成的码...
Meanshift均值漂移聚类算法 人工智能

Meanshift均值漂移聚类算法

一、meanshift 均值漂移就是把指定的样本点沿着密度上升的方向移向高密度区域。这里可以用矢量加法的几何意义来理解。参考博文Mean Shift 聚类算法 meanshift为 M r ( x )...
【电赛最全备赛资源】电赛历年赛题源码+老学长挥泪经验之谈(文章较长全网最全)+电赛论文写作模板及评分标准【19电磁炮、17板球、15风力摆、13倒立摆、94-21全国大学生电子设计竞赛历年真题】 人工智能

【电赛最全备赛资源】电赛历年赛题源码+老学长挥泪经验之谈(文章较长全网最全)+电赛论文写作模板及评分标准【19电磁炮、17板球、15风力摆、13倒立摆、94-21全国大学生电子设计竞赛历年真题】

【电赛最全备赛资源】电赛历年赛题源码+老学长挥泪经验之谈(文章较长全网最全)+电赛论文写作模板及评分标准 2022年全国大学生电子设计竞赛也进入到了紧张的学习和备赛阶段,作为大学生涯含金量最高的比赛(...
音频自动增益算法 人工智能

音频自动增益算法

语音自动增益(AGC)算法,指的是数字层面的,语音波形都是0101数字组成,指的是把这个波形统一扩大或压缩一个权值,以提高或降低声音响度 最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同...