pandas读取外部数据---(4)使用Pandas读写操作txt文件

目录

1、准备.txt的数据文件

2、pandas.read_csv()语法:

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

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

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

6、使用Pandas写入.txt文件


1、准备.txt的数据文件

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

pandas读取和写入csv文件:https://blog.csdn.net/weixin_41685388/article/details/103768116

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=','可以省略

小心编码问题:

import numpy as np
import pandas as pd
df = 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指定的编码格式。

import numpy as np
import pandas as pd
df = 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 np
import pandas as pd
df = 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 np
import 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   3
0  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 np
import 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.txt
df3 = 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  贵州

使用pandas读取和写入csv文件 :https://blog.csdn.net/weixin_41685388/article/details/103768116

发布了103 篇原创文章 · 获赞 75 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41685388/article/details/103787971