python数据分析之:数据加载,存储与文件格式
前面介绍了numpy和pandas的数据计算功能.但是这些数据都是我们自己手动输入构造的.如果不能将数据自动导入到python中,那么这些计算也没有什么意义.这一章将介绍数据如何加载以及存储.
首先来看读写文本格式的数据
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数.如下表:
csv文件是默认以,为分割符.可以通过命令行cat来读取文件内容.
In [4]: cat /home/zhf/1.csv
1,2,3,4
5,6,7,8
9,10,11,12
同样的我们也可以用pandas的函数进行读取.
In [6]: result=pd.read_csv('/home/zhf/1.csv')
In [7]: result
Out[7]:
1 2 3 4
0 5 6 7 8
1 9 10 11 12
但是读入的文件没有列名,如果要添加列名,需要设置header参数
In [11]: result=pd.read_csv('/home/zhf/1.csv',header=None)
In [12]: result
Out[12]:
0 1 2 3
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
也可以自己制定列的名称
In [14]: result=pd.read_csv('/home/zhf/1.csv',names=['one','two','three','four']
...: )
In [15]: result
Out[15]:
one two three four
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
In [16]: result['one']
Out[16]:
0 1
1 5
2 9
还可以明确将该列放到某个索引的位置上,通过制定index_col参数.
In [18]: result=pd.read_csv('/home/zhf/1.csv',names=['one','two','three','four']
...: ,index_col='four')
In [19]: result
Out[19]:
one two three
four
4 1 2 3
8 5 6 7
12 9 10 11
如果出现像下面的这种数据,#的这一行是我们不需要的.该如何省略掉呢
In [22]: result=pd.read_csv('/home/zhf/1.csv')
In [23]: result
Out[23]:
1 2 3 4
0 # # # #
1 5 6 7 8
2 9 10 11 12
可以通过skiprows将某一行的数据跳过.
In [24]: result=pd.read_csv('/home/zhf/1.csv',skiprows=[1])
In [25]: result
Out[25]:
1 2 3 4
0 5 6 7 8
1 9 10 11 12
同样的在读出的数据中,也可以判断是否为非空或者需要填充
In [10]: result
Out[10]:
1 2 3 4
0 # # # NaN
1 5 6 7 8.0
2 9 10 11 12.0
In [11]: pd.isnull(result)
Out[11]:
1 2 3 4
0 False False False True
1 False False False False
2 False False False False
read_csv和read_table的内置函数如下:
逐块读取文本文件
在处理很大的文件时,或找出大文件中的参数集便于后续处理的时候,只需要读取文件的一小部分或逐块对文件进行迭代.
读取某几行需要设置nrows参数,这里的nrows下标是从0开始的.因此nrows=2代表前3行.
In [19]: result=pd.read_csv('/home/zhf/1.csv',nrows=2)
In [20]: result
Out[20]:
1 2 3 4
0 # # # NaN
1 5 6 7 8.0
将数据写到文件上
数据也可以被输出为分隔符格式的文本
to_csv将数据写入到文件中,如果没有该文件,将会自动创建一个.
data1=data.to_csv('/home/zhf/3.csv')
在写入的时候也可以制定分隔符
data1=data.to_csv('/home/zhf/3.csv',sep='|')
JSON文件
json文件是在HTTP上广泛用来传输数据的文件之一,下面来看下如何将json对象传入到DataFrame中
In [34]: import json
In [35]: result=json.loads('/home/zhf/test.json')
In [36]: data=json.dumps(result)
In [37]: ret=DataFrame(data['one'],columns=['name','age'])
还有很多其他格式的文件,比如HTML,XML,数据库等文件.这些文件的读写和在python中是一样的.这里就不再一一介绍了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架