首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫将文本文件读入数据

熊猫将文本文件读入数据
EN

Stack Overflow用户
提问于 2020-09-28 09:37:23
回答 2查看 1.6K关注 0票数 3

我有一个.txt文件

代码语言:javascript
运行
复制
[7, 9, 20, 30, 50]  [1-8]
[9, 14, 27, 31, 45]  [2-5]
[7, 10, 22, 27, 38]  [1-7]

我试图使用df = pd.read_fwf(readfile,header=None) (而不是两列)读取由两列组成的数据帧,它形成了一个有三列的数据框架,有时会将第一个数字列表中的每一个都读入五列。

代码语言:javascript
运行
复制
    0              1      2
0   [7, 9, 20, 30, 50]  [1-8]
1   [9, 14, 27, 31, 45] [2-5]
2   [7, 10, 22, 27, 38] [1-7]

我不明白我做错了什么。有人能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-28 09:46:12

您可以利用列表之间的两个空格。

代码语言:javascript
运行
复制
pd.read_csv(readfile, sep='\s\s', header=None, engine='python')

退出:

代码语言:javascript
运行
复制
                     0      1
0   [7, 9, 20, 30, 50]  [1-8]
1  [9, 14, 27, 31, 45]  [2-5]
2  [7, 10, 22, 27, 38]  [1-7]

没有显式pd.read_fwf参数的widths试图插入固定宽度。但是第一个列表的长度是不同的。没有固定的宽度将每一行分隔成两列。

如果数据没有分隔符,但每个值的字母数是固定的,则widths参数非常有用。40年前,这是一种通用的数据格式。

代码语言:javascript
运行
复制
# data.txt
20200810ITEM02PRICE30COUNT001
20200811ITEM03PRICE31COUNT012
20200812ITEM12PRICE02COUNT107

pd.read_csv sep参数接受多字符和正则分隔符。通常,这在将字符串分离到列时更为灵活。

票数 3
EN

Stack Overflow用户

发布于 2020-09-28 10:39:32

用单行你可以用熊猫阅读。

代码语言:javascript
运行
复制
import pandas as pd
df = pd.read_csv(readfile, sep='\s\s')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64099596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档