打开txt报错_python(pandas)读取外部数据使用Pandas读写操作txt文件

1、准备.txt的数据文件

e9f062203f106dab7b2398fc0be6317f.png

其实pandas读写.txt文件和读写csv文件是类似的,而且使用的都是pd.read_csv()  / df.to_csv()

2、pandas.read_csv()语法:

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

常用参数解释:
filepath_or_buffer #需要读取的文件及路径
sep=',' # 以,为数据分隔符 
shkiprows= 10 # 跳过前十行 
nrows = 10 # 只去前10行 
usecols=[0,1,2,...] #需要读取的列,可以是列的位置编号,也可以是列的名称
parse_dates = ['col_name'] # 指定某行读取为日期格式 
index_col = ['col_1','col_2'] # 读取指定的几列 
error_bad_lines = False # 当某行数据有问题时,不报错,直接跳过,处理脏数据时使用 
na_values = 'NULL' # 将NULL识别为空值
encoding='utf-8' #指明读取文件的编码,默认utf-8

3、使用Pandas读取用英文逗号“,”分隔的.txt文件,sep=','可以省略

小心编码问题:

82d311995892395486f3c3718bd259d6.png

import numpy as npimport pandas as pddf = pd.read_csv(r"e:\text01.txt",encoding='ANSI')# df = pd.read_csv(r"e:\text01.txt",sep=',' ,encoding='utf-8')print(df) >>结果:      编号         姓名   职业  地址0   1001      jalen  计算机  贵州1   1002         xr   运营  贵州...

上面的代码就读取了整个text01.txt的数据,需要注意的是编码转换问题,你读取的时候encoding必须一致,你也可以打开文档--另存为--修改编码为utf-8指定的编码格式。

ff2773300a2dc1ee51566fec49181c61.png

import numpy as npimport pandas as pddf = pd.read_csv(r"e:\text01.txt",encoding='utf-8')# df = pd.read_csv(r"e:\text01.txt",sep=',' ,encoding='utf-8')print(df)

4、使用Pandas读取其他分割符的.txt文件,sep='分隔符'写清楚

同样注意编码保持一致

import numpy as npimport pandas as pddf = pd.read_csv(r"e:\text02.txt",sep=' ' ,encoding='utf-8')print(df) >>结果:   编号  地址0   1  贵州1   2  广东2   3  杭州3   4  湖北

5、使用Pandas读取.txt文件指定的行和列

import numpy as npimport pandas as pd#读的文件;读取第0,1,3列;不读前两行,然后读3行;忽略列名;编码df = pd.read_csv(r"e:\text01.txt",sep=',',usecols=[0,1,3],skiprows=2,nrows=3,header=None,encoding='utf-8')print(df) >> 结果:      0     1   30  1002    xr  贵州1  1003  lili  贵州2  1004  nini  广东

6、使用Pandas写入.txt文件

写入csv文件是最常用的,csv文件默认用’,’作为分隔符。

语法:

df.to_csv(path_or_buf=None, sep=’,’, na_rep=”, float_format=None, columns=None, header=True, index=True, index_label=None, mode=’w’, encoding=None)

常用参数说明:

path_or_buf:文件名、文件具体、相对路径、文件流等
sep:文件分割符号,to_csv()的sep默认为’,’,可指定任意字符作为分隔符
na_rep:将NaN转换为特定值。写入时NaN会被表示为空字符串,我们可能希望用其他值代替,如:‘- ’、‘/’、'NULL' 等
columns:选择部分列写入。保留部分列且按列排序,columns=['B列列名','A列列名']
header:忽略列名,header=None 不写入列名 
index:index=False 表示选择不写入索引

import numpy as npimport pandas as pd #读取text01.txt指定的数据df = pd.read_csv(r"e:\text01.txt",sep=',',usecols=['编号','姓名','地址'],nrows=3,encoding='utf-8')print(df) #将df写入.txt文件df.to_csv(r"e:\text03.txt",sep=",",columns=['编号','姓名','地址'],index=False,encoding='utf-8')print("写入成功") #再读取验证text03.txtdf3 = pd.read_csv(r"e:\text03.txt",sep=",",encoding='utf-8')print(df3) >>结果:     编号     姓名  地址0  1001  jalen  贵州1  1002     xr  贵州2  1003   lili  贵州写入成功     编号     姓名  地址0  1001  jalen  贵州1  1002     xr  贵州2  1003   lili  贵州

python连接操作Oracle数据库

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值