首页 > 其他 > 详细

pandas数据分析-读取文本格式的数据

时间:2019-06-10 18:08:41      阅读:234      评论:0      收藏:0      [点我收藏+]

因为其简单的文件交互语法、直观的数据结构,以及诸如元组打包解包之类的便利功能,python在文本和文件处理方面已经成为一门简单的语言。

pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,以下对他们进行了总结,其中read_csv和read_table可能是你今后用的最多的。

函数                          说明

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

read_table                从文件、URL、文件型对象中加载带分隔符的数据,默认分隔符为制表符(‘\t‘)

read_fwf                    读取定宽列格式数据(也就是说,没有分隔符)

read_clipboard          读取剪贴板的数据,可以看做read_table的剪贴板版,在将网页转换为表格                                   时很有用

path文件:

技术分享图片

由于该文件以逗号分割,我们可以使用read_csv将其读入一个DataFrame。

df = pd.read_csv(‘path‘)
print(df)

技术分享图片

也可以使用read_table,只不过要指定分隔符而已。

df = pd.read_table(‘path‘,sep=‘,‘)

你可以让pandas为其分配默认的列名,也可以自己定义。

df = pd.read_table(‘path‘,header=None)
df = pd.read_table(‘path‘,names=[‘i‘,‘g‘,‘h‘,‘y‘])

假设你希望将‘y’列作为DataFrame的索引,可以通过index_col函数指定列。

names=[‘i‘,‘g‘,‘h‘,‘y‘]
df = pd.read_table(‘path‘,names=names,index_col=‘y‘)

假设你希望将多个列做成一个层次化索引,只需传入由列编号或列名组成的编号即可。

names=[‘i‘,‘g‘,‘h‘,‘y‘]
df = pd.read_table(‘path‘,names=names,index_col=[‘y‘,‘h‘])

有些表格可能不是用固定的分隔符去分隔字段的,比如空白符或其他模式,我们可以用一些正则表达式来作为read_table的分隔符,看看下面这个文本文件:

技术分享图片

该文件由数量不定的分隔符分隔,我们可以通过正则表达\s+表示。

df = pd.read_table(‘path‘,sep=‘\s+‘)
print(df)

由于列名比数据行的数据少,所有read_table推断为索引。

技术分享图片

这些解析器函数可以帮助你处理很多的异形文件格式,可以使用skiprows函数进行跳过。

df = pd.read_table(‘path‘,sep=‘\s+‘,skiprows=[1])

缺失值处理是pandas的一个重要组成部分,缺失值要么没有,要么用一个固定的字符串表示。

技术分享图片

df = pd.read_csv(‘path‘)
print(df)

技术分享图片

print(pd.isnull(df))
技术分享图片

na_values可以接收一组用于表示缺失值的字符串。

df = pd.read_csv(‘path‘,na_values=[‘NULL‘])

可以用一个字典为各列指定不同的NA值。

sent = {‘C‘:[8],‘B‘:[3]}
df2 = pd.read_csv(‘path‘,na_values=sent)

在处理大量文件时,你可能指向读取文件的一小部分或者逐块对文件进行迭代,如果你指向读取几行,通过nrows进行指定即可。

df2 = pd.read_csv(‘path‘,nrows=1)

要逐块读取文件,可以设置chunksize参数。

df2 = pd.read_csv(‘path‘,chunksize=1)
top = Series([])
for pi in df2:
top = top.add(pi[‘key‘].value_counts(),fill_value=0)
print(top[:1])
技术分享图片

 

 
 
 
 

 


 

 

 

 

 

 

 

 






 



 



pandas数据分析-读取文本格式的数据

原文:https://www.cnblogs.com/li98/p/10999294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!