- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要一些帮助。我正在使用以下代码:
%matplotlib inline
import csv
from datetime import datetime
import numpy as np
import pandas as pd
from IPython.display import display
with open (r'C:\Users\Michel Spiero\Desktop\Analise Python Optitex\Analytics Optitex\base_entrada_python_v2.csv') as csvfile:
readCSV =csv.reader(csvfile, delimiter=';')
entrada_arquivo = pd.read_csv(r'C:\Users\Michel Spiero\Desktop\Analise Python Optitex\Analytics Optitex\base_entrada_python_v2.csv')
entrada_arquivo.head(10)
然后我得到这个错误:
ParserError Traceback (most recent call last)
<ipython-input-2-248d3ffc3e4b> in <module>()
3 readCSV =csv.reader(csvfile, delimiter=';')
4
----> 5 entrada_arquivo = pd.read_csv(r'C:\Users\Michel Spiero\Desktop\Analise Python Optitex\Analytics Optitex\base_entrada_python_v2.csv')
6 entrada_arquivo.head(10)
7
C:\Users\Michel Spiero\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision)
653 skip_blank_lines=skip_blank_lines)
654
--> 655 return _read(filepath_or_buffer, kwds)
656
657 parser_f.__name__ = name
C:\Users\Michel Spiero\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
409
410 try:
--> 411 data = parser.read(nrows)
412 finally:
413 parser.close()
C:\Users\Michel Spiero\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
980 raise ValueError('skipfooter not supported for iteration')
981
--> 982 ret = self._engine.read(nrows)
983
984 if self.options.get('as_recarray'):
C:\Users\Michel Spiero\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
1717 def read(self, nrows=None):
1718 try:
-> 1719 data = self._reader.read(nrows)
1720 except StopIteration:
1721 if self._first_chunk:
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.read (pandas\_libs\parsers.c:10862)()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_low_memory (pandas\_libs\parsers.c:11138)()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_rows (pandas\_libs\parsers.c:11884)()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows (pandas\_libs\parsers.c:11755)()
pandas\_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error (pandas\_libs\parsers.c:28765)()
ParserError: Error tokenizing data. C error: Expected 9 fields in line 3, saw 11
我的目标是获取此 CSV 文件(由 ; 分隔)并将其导入到数据框中。
重要的是要说明数字是以葡萄牙语格式定义的,因此小数点用逗号而不是点分隔。
有人可以帮助我吗?这是一个基本问题,但我很困惑。
最佳答案
你的 CSV file需要一点解析来处理引号。正则表达式分隔符后跟 dropna
操作应该可以做到。
path = r'C:\Users\Michel Spiero\Desktop\Analise Python Optitex\Analytics Optitex\base_entrada_python_v2.csv'
with open(path, 'r', encoding='utf-8') as f:
entrada_arquivo = pd.read_csv(f, sep=';|"', engine='python')\
.dropna(how='all', axis=1)
entrada_arquivo.head(5)
Cliente Numero N Fantasia Serie Docto. Loja Data Saida \
0 1293 47367 NaN 1 1 42009.0
1 1293 47367 NaN 1 1 42009.0
2 15043 47368 OTICA DE RESPLENDOR 1 1 42010.0
3 15043 47368 OTICA DE RESPLENDOR 1 1 42010.0
4 15043 47368 OTICA DE RESPLENDOR 1 1 42010.0
Nome DT Emissao Tipo da nota \
0 DUBLATEX MC COM DE ART VIAG E CAL LTDAE 42009 B
1 DUBLATEX MC COM DE ART VIAG E CAL LTDAE 42009 B
2 FRANCISMAR CORREA LOURENCO ME 42009 N
3 FRANCISMAR CORREA LOURENCO ME 42009 N
4 FRANCISMAR CORREA LOURENCO ME 42009 N
Cond. Pagto ... Total Vendedor 1.1 Vendedor 2 Data Saida.1 \
0 1 ... 2204,1 NaN NaN 42009.0
1 1 ... 1598,42 NaN NaN 42009.0
2 322 ... 173,8 65.0 NaN 42010.0
3 322 ... 245,85 65.0 NaN 42010.0
4 322 ... 491,7 65.0 NaN 42010.0
Vlr.Bruto Vlr.ICMS Estado.1 Cond. Pagto.1 Volume 1 Transp.
0 3802,52 0 SP 1 1 43
1 3802,52 0 SP 1 1 43
2 3638,02 397,58 MG 322 6 5
3 3638,02 397,58 MG 322 6 5
4 3638,02 397,58 MG 322 6 5
[5 rows x 39 columns]
关于Python/Pandas –– ParserError : Error tokenizing data. C error : Expected x fields in line i, saw y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46136143/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是脚本新手。如何编写 Expect 脚本以通过 ssh 连接到设备并提示用户输入密码?我们使用 pin + RSA token 代码作为密码,因此我无法存储密码。 #!/usr/bin/expect
我编写了以下代码并尝试执行它。但我在执行 do {”时遇到“无效的命令名称“do”” 代码: #!/usr/bin/expect set val 0; set input 5; do { pu
我已经查看了 Expect 联机帮助页并用 Google 搜索了它,但我还没有找到 expect 的 -r 是什么。我看到这个选项以前是这样用的 expect -r "\r\n\r\n" 在 expe
我的 shebang 看起来像这样: #!/usr/bin/expect -d 当我从命令行运行脚本时,它会提供我想要的内容。 但是,我通过 crontab 运行这个脚本。是否可以将调试开关保持打开状
我是 Expect 脚本的新手。 我在 Linux 机器上为 ssh 编写了一个 Expect 脚本,在那里我在 ssh 到不同的 Linux 机器时遇到了问题。下面我复制了脚本。 !/usr/loc
Scene 1, Layer 'script', Frame 1, Line 9 1084: Syntax error: expecting identifier before this. Sc
我正在运行调试命令以将命令的输出记录到文件中。我尝试了 log_file 命令,但它没有记录输出。我的代码如下: log_file -a gdb.txt send "~/debugulator.sh
我希望 expect_user 有一个无限的(或非常大的)超时和 expect 的默认超时。有没有办法设置不同的超时?或者我是否只需要在每次更改用途之前手动执行此操作? 最佳答案 expect 和ex
我正在学习 iOS 编程(我来自 Android),我正在寻找更容易获取字符串的方法。有了这个建议,我定义了下一个宏并在一些代码片段中使用它: #define STRING_BASE @"InfoPl
你好我是 rspec 的新手,我想弄清楚将 block 传递给 expect{} 和只使用 expect() 之间的区别 这是一个简单的例子 require "rails_helper" RSpec.
我正在尝试为 React JS 运行单元测试 - 使用 jest/enzyme。 目前测试失败。不太清楚为什么,也许我没有正确调用 expect(wrapper.find)。这是我测试的一部分: F
例如,现在我有一个“root.exp”期望脚本如下: spawn ssh user@ip expect "Password:" send "password" 然后,我要发送到这个ssh服务器的exp
您好,我是 Expect 脚本编写的新手,我一直在尝试使用以下方法将 IP 地址获取到变量中: set timeout -1 spawn $env(SHELL) match_max 100000 se
expect.anything() 不适用于 expect.toBe(),但适用于 expect.toEqual() test("this will pass", () => { expect("
我有一个如下所示的简单脚本,从命令行读取 2 个数字并将它们加在一起: $cat runexp.sh #!/bin/bash echo "read 1st number" read n1 echo "
当 Linux 机器的 $IP 登录后询问密码时,下面的 expect 脚本工作正常 但在某些情况下,某些Linux机器不需要ssh密码(我们可以不用密码登录), 所以我需要更改我的期望脚本以支持没有
我正在尝试使用 expect 远程登录服务器并更改用户密码。该应用程序要求,如果您要更改的密码包含特殊字符,则将其引用。问题是,还需要引用 expect send 语句,当我尝试将两者结合起来时,脚本
下面这个简单的 expect 脚本的目标是获取远程机器上的 hostname 名称 有时期望脚本无法执行到 $IP_ADDRESS 的 ssh(因为远程机器不活动等) 所以在这种情况下,expect
我试图创建一个宏来替换, first: Some(first.as_ref().parse::().expect("Could not parse 'first'")) 我在其他模块(如 Clap w
我是一名优秀的程序员,十分优秀!