Pandas读取文本文件为多列

2024-06-04 01:04

本文主要是介绍Pandas读取文本文件为多列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要使用Pandas将文本文件读取为多列数据,你可以使用pandas.read_csv()函数,并通过指定适当的分隔符来确保正确解析文件中的数据并将其分隔到多个列中。

假设你有一个以逗号分隔的文本文件(CSV格式),每一行包含多个值,你可以这样读取它:

在这里插入图片描述

1、问题背景

当使用Pandas读取文本文件时,可能会遇到整行被读为一列的情况,导致数据无法正确解析。

2、解决方案

有两种常见的解决方案:

  1. 使用正确的分隔符:确保使用的分隔符与文本文件中的数据分隔符一致。在示例中,分隔符应为r’\s+'(一个或多个空格)。
  2. 使用delim_whitespace=True:设置delim_whitespace参数为True,Pandas会自动检测分隔符,并根据空格将文本文件中的数据分隔为多列。

下面是使用正确分隔符的示例代码:

import pandas as pd
from StringIO import StringIOa = '''
TRE-G3T- Triumph-        0.000 11/06/2013 313585.10 1765.00000 11/06/2013 313600.10   41 20 54.57907  -70 38 14.25924      -30.400       -1.379   893059.006  2588821.543     2834.294   -19545.615      -45.849        0.985        1.058        3.399        3.694      -15.203        1.099   1.0000 6   6.37  4        0.000 I             -0.084     0.086    -0.059   0.000   0.000   0.000   363026.471  4578737.512      -30.400
TRE-G3T- Triumph-        0.000 11/06/2013 313585.20 1765.00000 11/06/2013 313600.20   41 20 54.61145  -70 38 14.22044      -30.332       -1.311   893061.933  2588824.850     2835.196   -19544.617      -45.779        0.944        1.015        3.313        3.592      -15.135       -3.365   1.4883 6   6.35  4        0.001 I              0.833    -0.485    -1.570   0.000   0.000   0.000   363027.391  4578738.493      -30.332
TRE-G3T- Triumph-        0.000 11/06/2013 313585.30 1765.00000 11/06/2013 313600.30   41 20 54.48685  -70 38 14.10862      -29.190       -0.169   893070.589  2588812.325     2837.797   -19548.465      -44.651        0.950        1.017        3.254        3.539      -13.994       -8.197   1.0000 6   5.70  4        0.001 I             -0.158     0.003     0.061   0.000   0.000   0.000   363029.917  4578734.602      -29.190
'''df = pd.read_csv(StringIO(a), delimiter=r'\s+', header=None)print(df.shape)
print(df.head())

输出结果:

(3, 42)0         1   2           3         4     5           6         7   \
0  TRE-G3T-  Triumph-   0  11/06/2013  313585.1  1765  11/06/2013  313600.1   
1  TRE-G3T-  Triumph-   0  11/06/2013  313585.2  1765  11/06/2013  313600.2   
2  TRE-G3T-  Triumph-   0  11/06/2013  313585.3  1765  11/06/2013  313600.3   8   9         10  11  12        13      14     15          16           17  \
0  41  20  54.57907 -70  38  14.25924 -30.400 -1.379  893059.006  2588821.543   
1  41  20  54.61145 -70  38  14.22044 -30.332 -1.311  893061.933  2588824.850   
2  41  20  54.48685 -70  38  14.10862 -29.190 -0.169  893070.589  2588812.325   18         19      
0  2834.294 -19545.615 ...  
1  2835.196 -19544.617 ...  
2  2837.797 -19548.465 ...  [3 rows x 42 columns]

下面是使用delim_whitespace=True的示例代码:

import pandas as pd
from StringIO import StringIOa = '''
TRE-G3T- Triumph-        0.000 11/06/2013 313585.10 1765.00000 11/06/2013 313600.10   41 20 54.57907  -70 38 14.25924      -30.400       -1.379   893059.006  2588821.543     2834.294   -19545.615      -45.849        0.985        1.058        3.399        3.694      -15.203        1.099   1.0000 6   6.37  4        0.000 I             -0.084     0.086    -0.059   0.000   0.000   0.000   363026.471  4578737.512      -30.400
TRE-G3T- Triumph-        0.000 11/06/2013 313585.20 1765.00000 11/06/2013 313600.20   41 20 54.61145  -70 38 1

所以说最终无论我们的文本文件使用何种分隔符,Pandas都提供了灵活的方式来读取它并将其解析为多列数据。今天的知识就介绍到这里,有啥问题可以截图留言讨论。

这篇关于Pandas读取文本文件为多列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028620

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati