python:pandas(7),读写文本格式数据

本文详细介绍了Python pandas库中用于读写文本格式数据的函数,如read_csv和read_table。讨论了如何处理数据类型转换问题,特别是pandas可能将字符类型错误识别为numpy.float64的情况。此外,还解释了如何使用各种参数来控制数据读取,如索引、列名、缺失值处理和日期解析,并展示了如何逐块读取大型文本文件。
摘要由CSDN通过智能技术生成

利用python进行数据分析

第六章:数据加载、存储与文本格式

NumPy提供了一个低级但异常高效的二进制数据加载和存储机制,而对于pandas的输入与输出划分为几个大类:
读取文本文件和其他更高效的磁盘存储格式,
加载数据库中的数据,
利用Web API操作网络资源。

说明:以read_csv或read_table读取文件时,对于文件当中的内容可分为多种类型,msg=pd.read_table(file),msg.ix[0],当中存在很多values的类型,‘str’,‘float’,'numpy.float64’等多种类型,但是有些时候pandas会将某些字符类型自定义为’numpy.float64’类型,例如:在文件中是18,单纯的数字,而在read_table读取后,显示的是18.0,type类型为<type ‘numpy.float64’>,出现这个问题需要额外的方法对内容进行修改,msg.loc[i,‘NUMBER’]=str(int(msg.loc[i,‘NUMBER’])),先将定义好的numpy.float64类型转换成int,再转换成str。所以这一点在使用read_csv或read_table读取文件时要格外注意。

1,读写文本格式的数据

表6-1:pandas中的解析函数
| 函数 | 说明 |
| read_csv | 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号 |
| read_table | 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符(“\t”) |
| read_fwf | 读取定宽列格式数据(也就是说,没有制表符) |
| read_clipboard | 读取剪贴板中的数据,可以看做read _table的剪贴板版,在将网页转换为表格示很有用 |

这些函数在将分本数据转换为DataFrame时,这些函数的选项可以划分为以下几个大类:

  • 索引:将一个或多个列当做返回的DataFrame处理,以及是否从文件、用户获取列名。
  • 类型推断和数据转换:包括用户定义值的转换、缺失值标记列表等。
  • 日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果汇总的单个列。
  • 迭代:支持对大文件进行逐块迭代。
  • 不规整数据问题:跳过一些行、页脚、注释或其他一些不重要的东西(比如由成千上万个逗号隔开的数值数据)。

1,类型推断(type inference)
指你不用需要指定列的类型到底是数值、整数、布尔值,还是字符串。但日期和其他自定义类型的处理需要进行另外的处理。
以逗号为分割的(CSV)文本文件:
>>> import pandas as pd
>>> import os
>>> cat ex1.csv
a,b,c,d,message
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
>>> df=pd.read_csv('C:\Users\Administrator\Desktop\\ex1.csv')#该文件字符以逗号分隔所以可以用read_csv
>>> df
···a b c d message
0 1 2 3 4 hello
1 5 6 7 8 world
2 9 10 11 12 foo
>>> df=pd.read_table('C:\Users\Administrator\Desktop\\ex1.csv', sep=',')#如果用read_table(默认以‘\t’分隔)读取文件,需要指定分隔符类型sep=’,'
read_table和read_csv默认将文件的第一行作为输出数据的行标题,但是如果文件本身不存在行标题则需要加入另外参数。
>>> cat ex2.csv
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
文件读取后可以让pandas为其分配默认的列名,也可以自定义列名。
>&g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值