- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试读取每行列数不同的 txt 文件。这是我的文件的开头:
60381 6
1 0.270 0.30 0.30 0.70 0.70
4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988
2 0.078 0.30 0.30 0.70 0.70
5.387 5.312 5.338 4.463 4.675 4.275 4.238 3.562 3.175 3.925 4.950 4.762
6 0.241 0.30 0.60 0.70 0.40
3.700 3.200 2.738 2.325 1.250 0.975 1.175 1.950 2.488 3.613 3.987 3.950
7 0.357 0.30 0.60 0.70 0.40
1.212 1.125 1.050 0.950 0.663 0.488 0.425 0.512 0.637 0.900 1.112 1.188
8 0.031 0.30 0.70 0.70 0.30
0.225 0.213 0.200 0.175 0.200 0.213 0.375 0.887 0.975 0.512 0.262 0.262
10 0.022 0.30 0.80 0.70 0.20
0.712 0.700 0.738 0.550 0.513 0.688 0.613 0.600 0.850 0.812 0.800 0.775
60382 5
6 0.197 0.30 0.60 0.70 0.40
3.700 3.200 2.738 2.325 1.250 0.975 1.175 1.950 2.488 3.613 3.987 3.950
7 0.413 0.30 0.60 0.70 0.40
1.212 1.125 1.050 0.950 0.663 0.488 0.425 0.512 0.637 0.900 1.112 1.188
8 0.016 0.30 0.70 0.70 0.30
0.225 0.213 0.200 0.175 0.200 0.213 0.375 0.887 0.975 0.512 0.262 0.262
10 0.111 0.30 0.80 0.70 0.20
0.712 0.700 0.738 0.550 0.513 0.688 0.613 0.600 0.850 0.812 0.800 0.775
11 0.263 0.30 0.50 0.70 0.50
1.812 1.388 1.087 0.825 0.538 0.400 0.338 0.400 0.500 0.925 0.962 1.100
我试过使用 pandas read_csv 来读取它:
import pandas as pd
data = pd.read_csv('./myfile.txt',header=None,sep='\s')
这给出了以下错误:
ParserError: Expected 6 fields in line 3, saw 12. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.
所以我的文件没有多字符定界符或引号。我已经尝试过在这个论坛中找到的解决方案,建议使用:
data = pd.read_csv(open('./myfile.txt','r'), header=None,encoding='utf-8', engine='c')
虽然这解决了上面的错误,但我看到的数组没有使用空格作为列的分隔符,输出只有 1 列:
我应该如何读取文件以获得每个值的列?我不介意是否有 nan 值填充其余部分。
最佳答案
如果您已经设法在单个列中获取数据,您可以使用 Series.str.split()
解决此问题。
这是您提供的一些示例数据的示例(您可以在 split()
中使用任何字符串或正则表达式作为分隔符):
df[0].str.split(' ', expand=True)
0 1 2 3 4 5 6 7 8 9 \
0 0.270 0.30 0.30 0.70 0.70 None None None None None
1 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988
如果你这样做,那么你也可以使用 pd.DataFrame(open(...).readlines())
或类似的东西创建数据框,因为你不会受益完全来自 read_csv()
,并且您的文件不完全是标准的 csv 文件。
# f is a StringIO with some of your sample data to simulate a file
df = pd.DataFrame(line.strip().split(' ') for line in f)
0 1 2 3 4 5 6 7 8 9 \
0 60381 6 None None None None None None None None
1 1 0.270 0.30 0.30 0.70 0.70 None None None None
2 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988 4.988
3 2 0.078 0.30 0.30 0.70 0.70 None None None None
4 5.387 5.312 5.338 4.463 4.675 4.275 4.238 3.562 3.175 3.925
当然,您也可以通过确保每行包含相同数量的列来修复输入文件,这将解决 ParserError
问题。
关于python - Pandas read_csv 的 ParserError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764129/
Pd.read_csv(“。实际代码如下所示;。作为PD进口大熊猫。。更新:我试过了。作为PD进口大熊猫。结果是。原始CSV如下所示:
我有一个如下所示的 CSV: "ID"|"Description"|"Date" "1234"|"good text"|"2019-10-12" "9012"|"bad"text|here""|"20
从 jquery 获取 Ajax 请求的“解析器错误”,我尝试将 POST 更改为 GET,以几种不同的方式(创建类等)返回数据,但我似乎无法弄清楚是什么问题是。 我的项目在 MVC3 中,我使用的是
我尝试在 Powershell 中执行 python 脚本,出现此错误。 脚本本身是正确的,我可以在 CMD 中执行相同的命令。 那么我应该在powershell中写什么? "C:\Program F
我正在为我的社交网络开发气球通知。当有 2 个或更多通知时,我遇到了这个错误。我在 jsonlint.com 上检查了我的 JSON 响应,我在第 6 行出错。 JSON 响应: {
怎么了? $ docker-compose up ERROR: yaml.parser.ParserError: while parsing a block collection in "./do
我对 Rails API 进行了 AJAX 调用,该调用仅呈现 JSON,但我不断收到解析器错误。我尝试了各种方法,但没有任何效果。 这是我的ajax调用 $.ajax('/api/users/sho
对于以下 docker-compose.yml,我总是会遇到无法解释的语法错误(我没有看到两个 docker-compose.yml 之间第 2 行和第 3 行的区别) --- version: '2
我目前正在使用 django 进行 ajax。但是,响应会引发错误。 我使用 ajax 向 View 发送请求并创建模型。现在我们已经准备好创建了。我觉得返回 View 有问题。 我收到的错误消息 f
我目前正在开发一个 jquery 程序。我的程序在 firefox 3.5 中运行良好,但直到我将浏览器升级到 firefox 4.0 后才能正常运行。从那时起,'parsererror' 就再也没有
所以,我已经与 Javascript 斗争了一段时间,但我遇到了一个奇怪的错误,这可能很简单。我有一个像这样的 ajax 请求: $.ajax({ url: 'http://www.hahah
我提交如下所述的 reactjs 表单, submit(){ if(this.checkRequiredField()){ $.ajax({ url: '/api/A
这是我的代码,它在我 friend 的计算机上运行得很好: #!/usr/bin/python import pandas as pd df = pd.read_csv("report.csv") d
我正在尝试读取每行列数不同的 txt 文件。这是我的文件的开头: 60381 6 1 0.270 0.30 0.30 0.70 0.70 4.988 4.988 4.988 4.988 4.988 4
我正在尝试在我的代码中导入 pandas,但它引发了以下错误。 >>> import pandas Traceback (most recent call last): File "", line
解决方案:在与 @skobaljic 进行 teamviewer session 后,他发现我实际上并没有在 localhost 中打开 html,而是使用文件系统(如 file://...)。对于这
我想发布我的 Java Rest 服务的 json 数据,当将数据从 jQyery Ajax 发布到 Rest 服务时,返回: “parsererror”语法错误:意外的标记 c Java 对象类 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 6 年前。 编辑问题以包含 desired behavior, a specific proble
所以,我意识到two questions已经有人问过这个问题,但(不幸的是)我的情况似乎有所不同。 Sinatra README说要对 POST 数据执行以下操作: post "/api" do
我想使用验证引擎检查现有电子邮件。但是 Firebug 控制台中显示一个问题,如下所示:遇到 PHP 错误 严重性:通知 消息:未定义索引:reg_em 文件名:controllers/user.ph
我是一名优秀的程序员,十分优秀!