python利用read

您所在的位置:网站首页 r读取数据的数据最后一行为什么有NA python利用read

python利用read

2024-07-11 12:34| 来源: 网络整理| 查看: 265

目录 1. 案例1.1 案例1 read_table1.2 案例2 read_csv 2. pandas.read_table() 详解2.1 sep介绍参数列表:适用于read_csv()和read_table() 3. read_csv()读取dat数据、写入dat3.1 案例3.2 error_bad_lines参数 4. with + open()方法4.2 with + open() 获取最后一行 5. 特殊案例参考链接

1. 案例 1.1 案例1 read_table df = pd.read_table(r'E:\data\2012_08_10.dat', sep=',', skiprows=1) 首先,用记事本打开 dat 信息,查看内容。发现第一行为无用信息,跳过第一行, skiprows=1,第二行和第三行看似杂乱,值得数量却和下面的行是一致的,需要保留。内容都是由 逗号 隔开,所以 sep=‘,’ 。

在这里插入图片描述

1.2 案例2 read_csv

在这里插入图片描述

error_bad_lines=False # 跳过出错的行,超出header字段的行(默认情况下,字段过多的行(例如,逗号过多的 csv 行)会引发异常,并且不会返回任何 DataFrame。 如果为 False,那么这些“坏行”将从返回的 DataFrame 中删除,然后返回正常的这部分数据。)skiprows 如果不加参数skiprows的话会报错,可以看出这是16*2的数据,如果想要去除多几行,如下图,在列表里添加你想要删除的哪几行,不支持切片[0:2]或者[0,1,3:6]parse_dates:默认是False,将该列解析为datetime格式parse_dates:将数据解析为datetimes格式,即datetime64[ns],可以将多个列合成为一个时间列,或者只解析一列。skipfooter:该参数只能是部分取消读入,且只能从后向前地设定取消读入部分,取消末尾的多少行。names:对列名进行命名。header:header关键字的主要功能有两个: 第一是将指定行的数据作为读取数据各列的列名,由最初读取数据显示出的信息表明,edu文件文件中第一排的“姓名”“居住地”“年级”“年龄”“是否住校”依次成为了各列的列名,这是因为header默认参数为0,即将edu文件中第一排作为列名的缘故。第二个功能,那就是确定数据开始行,在将“阴晓彤”同学的数据变为新列名的同时,原本的列名“姓名”“居住地”“年级”“年龄”“是否住校”这一行却因为将第一排(实际的第二排)作为列名而消失了,这是因为同时本行也成为了读取数据的开始行。 data = pd.read_csv('F:\\0008_S.dat', error_bad_lines=False, skiprows=[0, 2, 3], nrows=10) data['TIMESTAMP'] = pd.to_datetime(data['TIMESTAMP'], errors='coerce') data1 = data.dropna(axis=0, subset=['TIMESTAMP']) data2 = data1[(data1['TIMESTAMP'] >= pd.to_datetime('2017-12-31 00:00:01')) & (data1['TIMESTAMP'] = 2: # 判断是否最后至少有两行,这样保证了最后一行是完整的 last_line = lines[-1] # 取最后一行 break # 如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的 # 所以off翻倍重新运行,直到readlines不止一行 offset *= 2 print('文件' + fname + '第一行为:' + first_line.decode()) print('文件' + fname + '最后一行为:' + last_line.decode()) 5. 特殊案例

这里 sep 用的 \t+

data = pd.read_table(f, encoding='gbk', parse_dates={'time': ['年月日', '时间戳']}, error_bad_lines=False, sep='\t+',skiprows=10)

filepath_or_buffer---->CSV文件的路径或URL地址。 sep---->CSV文件中字段分隔符,默认为逗号。 delimiter---->CSV文件中字段分隔符,默认为None。 header---->指定哪一行作为列名,默认为0,即第一行。 names---->自定义列名,如果header=None,则可以使用该参数。 index_col---->用作行索引的列编号或列名。 usecols---->读取指定的列,可以是列名或列编号。 dtype---->指定每列的数据类型,可以是字典或者函数。 na_values---->用于替换缺失值的值。 skiprows---->跳过指定的行数。 skipfooter---->跳过文件末尾的指定行数。 nrows---->读取指定的行数。 parse_dates---->指定哪些列需要转换为日期类型。 infer_datetime_format---->尝试解析日期时间格式(提高效率)。 dayfirst---->将日期解析为“日-月-年”而不是“月-日-年”的格式。 encoding---->CSV文件的编码方式,默认为None,使用系统默认编码。 squeeze---->如果文件只包含一列,则返回Series对象而不是DataFrame对象。 thousands---->千位分隔符。 decimal---->小数点分隔符。

参考链接

[1] panda.read_table 2022.6



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3