python使用read_table读取txt文件

目录

      • 1. 涉及时间列合并
      • 2. 列错位修复
      • 3. parse_dates和date_parser
      • 参考资料:

1. 涉及时间列合并

data2 = pd.read_table(r'E:\data\Molas.txt', encoding='gbk', header=0, index_col=False, parse_dates=[['年月日', '时间戳']])
  • header=0 表示第 0 行作为列索引,header=None第0行不作为列名;
  • index_col:当为False时,重新生成行索引,也可以自己指定某列为行索引,当index_col=0时,将第一列变为index。
  • parse_dates:将某列解析为 date 类型,同时设定 infer_datetime_format = True 会加快解析速度;parse_dates={“datetime”: [0,1,2]}表示解析后重命名为 ‘datetime’
  • date_parser=lambda x: pandas.datetime.strptime(x, ‘%Y %m %d’)
  • keep_date_col 参数则是用了指定解析为日期格式的列是否保留,True或False。
  • skiprows=2,表示前面两行[0, 1]都不读入,等价于skiprows=[0, 1];
  • names=[‘’] 指定列名;
  • usecols=[‘Y’,‘M’,‘D’,‘PRCP’]:读取这 4 列 ‘Y’,‘M’,‘D’,‘PRCP’;
  • sep:用于分割每行字段的字符序列或正则表达式,
    • \s快捷方式可以匹配空白字符,比如空格,tab、换行等
    • 一般用 \t 或 \t+

时间列被放在了两个列中,需要合并,然后设置为索引,而 parse_dates=[[‘年月日’, ‘时间戳’]] 就是这个作用
python使用read_table读取txt文件_第1张图片
python使用read_table读取txt文件_第2张图片
当日期和时间被放在两个列时,通过 parse_dates=[[‘Date’, ‘Time’]] 来合并,合并后新列名一般为 ‘Date_Time’
python使用read_table读取txt文件_第3张图片

2. 列错位修复

data = pd.read_table(r'F:\0613.txt', encoding='gbk', sep='\s+', skiprows=10, error_bad_lines=False)

读取 txt 格式数据后,发现列错误,年月日、时间戳 两列自动合并成为 1 列,并自动成为索引

而经度、纬度两列,直接被拆分成两列,如何修复?
python使用read_table读取txt文件_第4张图片
修改方式:仍然错误

data = pd.read_table(r'F:\0613.txt', encoding='gbk', sep='\t+', skiprows=10, error_bad_lines=False)

python使用read_table读取txt文件_第5张图片
正确答案:

data = pd.read_table(r'F:\0613.txt', encoding='gbk', sep='\t+', skiprows=10, error_bad_lines=False)

python使用read_table读取txt文件_第6张图片

3. parse_dates和date_parser

parse_dates(动词,主动解析格式)

  • parse_dates=True : 尝试解析index为日期格式;
  • parse_dates=[0,1,2,3,4] : 尝试解析0,1,2,3,4列为时间格式;
  • parse_dates=[[’考试日期’,‘考试时间’]] :传入多列名,尝试将其解析并且拼接起来,parse_dates[[0,1,2]]也有同样的效果;
  • parse_dates={’考试安排时间’:[‘考试日期’,‘考试时间’]},将会尝试解析日期和时间拼接起来,并将列名重置为‘考试安排时间’;
    注意:重置后列名不能和原列名重复

date_parser(名词,指定解析格式去解析某种不常见的格式)

  • date_parser需要配合parse_dates工作,具体需要传入函数
    例如时间为2021年2月24日,可以传入
  • parse_dates=[0]
  • date_parser=lambda x:pd.to_datetime(x,format=’%Y年%m月%d日’)

参考资料:

[1] pandas之 read_table函数读取txt文件 2019.1
[2] pd. read_csv解析日期格式字符串parse_dates参数,以及pd.to_datetime()、dateutil.parser.parse()与datetime.strptime()比较 2019.10
[3] Python pandas,时间序列,将多列合并成完整的时间戳 PeriodIndex 2019.2
[4] python中pd读取文件parse_dates和date_parser参数运用 2021.2

你可能感兴趣的:(#,文件读写,python,pandas,数据分析)