数据加载、存储与文件格式
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 函数的参数
逐块读取文本文件
在处理文件时,如果只想读取其中的几行,可以通过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语音识别系统

数据分析——算法——K-means聚类(天池:汽车产品聚类分析)

PyTorch深度学习实践——多分类问题

python错误tensorflow.python.framework.errors_impl.InvalidArgumentError Assign requires shapes of both

语音识别方向秋招面试记录(持续更新)

Meanshift均值漂移聚类算法

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

音频自动增益算法

Xception迁移学习:玉米叶片病害识别分类

ESIM模型详解与Keras代码实现

ffmpeg深入理解H264中的时间戳( DTS和PTS)

【ESP32-CAM】使用opencv获取ESP32-CAM视频流,并将图像保存至TF卡(一)

MobileNet系列(2):MobileNet-V2 网络详解

pandas的简单使用(查询)
