相关疑难解决方法(0)

Python Pandas - 读取包含多个表的csv文件

我有一个.csv包含多个表的文件.

使用熊猫,这将是拿到两个数据帧的最佳策略inventory,并HPBladeSystemRack从这个文件?

输入.csv看起来像这样:

Inventory       
System Name            IP Address    System Status
dg-enc05                             Normal
dg-enc05_vc_domain                   Unknown
dg-enc05-oa1           172.20.0.213  Normal

HP BladeSystem Rack         
System Name               Rack Name   Enclosure Name
dg-enc05                  BU40  
dg-enc05-oa1              BU40        dg-enc05
dg-enc05-oa2              BU40        dg-enc05
Run Code Online (Sandbox Code Playgroud)

到目前为止,我提出的最好的方法是将此.csv文件转换为Excel工作簿(xlxs),将表拆分为表并使用:

inventory = read_excel('path_to_file.csv', 'sheet1', skiprow=1)
HPBladeSystemRack = read_excel('path_to_file.csv', 'sheet2', skiprow=2)
Run Code Online (Sandbox Code Playgroud)

然而:

  • 这种方法需要xlrd模块.
  • 必须实时分析这些日志文件,以便找到一种分析它们来自日志的方法.
  • 真实的日志有比这两个更多的表.

python csv excel python-2.7 pandas

7
推荐指数
1
解决办法
7256
查看次数

Python VsCode:找不到parser.pyx

我在运行python脚本“找不到parser.pyx:未找到文件”时遇到错误,并且路径为当前工作目录+“ pandas_libs \ parsers.pyx”。我找不到为什么VsCode引用wkdr而不是正确指定的应用程序路径。

python visual-studio-code vscode-settings

7
推荐指数
1
解决办法
1437
查看次数

熊猫:如何解决“错误标记数据”?

关于SO的这个话题已经问很多问题。(以及许多其他)。到目前为止,在众多答案中,没有一个对我有真正的帮助。如果我错过 有用的,请告诉我。

我只是想将带有熊猫的CSV文件读入数据框。听起来很简单。

我的档案 Test.csv

1,2,3,4,5
1,2,3,4,5,6
,,3,4,5
1,2,3,4,5,6,7
,2,,4
Run Code Online (Sandbox Code Playgroud)

我的代码:

import pandas as pd
df = pd.read_csv('Test.csv',header=None)
Run Code Online (Sandbox Code Playgroud)

我的错误:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 5 fields in line 2, saw 6
Run Code Online (Sandbox Code Playgroud)

我对这个问题的猜测是,Pandas查找第一行,并期望接下来的行中具有相同数量的令牌。如果不是这种情况,它将以错误停止。

在众多答案中,使用选项的建议例如: error_bad_lines=Falseheader=Noneskiprows=3更多无用的建议。

但是,我不想忽略任何行或跳过。而且我不预先知道数据文件有多少列和行。

因此,基本上可以归结为如何找到数据文件中的最大列数。这是要走的路吗?我希望有一种简单的方法可以简单地读取第一行中没有最大列号的CSV文件。谢谢您的提示。我在Win7上使用Python 3.6.3,Pandas 0.24.1。

python csv pandas

5
推荐指数
1
解决办法
5650
查看次数

由于额外的列值,尝试使用 Pandas Python 读取 csv 时出错

这是我试图摆脱的场景:
我正在尝试读取以下类型的 csv:

para1,para2,para3,para4
1,2,3,4,
1,2,3,4,5,
1,2,3,4,
2,3,4,5,6,7,8,9,0,
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令并收到以下错误:

>>> import pandas as pd
>>> df =pd.read_csv("test.csv")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\pandas\io\parsers.py", line 702, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Python35\lib\site-packages\pandas\io\parsers.py", line 435, in _read
    data = parser.read(nrows)
  File "C:\Python35\lib\site-packages\pandas\io\parsers.py", line 1139, in read
    ret = self._engine.read(nrows)
  File "C:\Python35\lib\site-packages\pandas\io\parsers.py", line 1995, in read
    data = self._reader.read(nrows)
  File "pandas\_libs\parsers.pyx", line 899, in pandas._libs.parsers.TextReader.read
  File "pandas\_libs\parsers.pyx", line 914, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas\_libs\parsers.pyx", line 968, …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
966
查看次数

Python 3 Pandas错误:pandas.parser.CParserError:标记数据时出错.C错误:第5行预计11个字段,见13

我检查了这个答案,因为我遇到了类似的问题.

Python Pandas错误标记数据

但是,出于某种原因,我的所有行都被跳过了.

我的代码很简单:

import pandas as pd

fname = "data.csv"
input_data = pd.read_csv(fname) 
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

  File "preprocessing.py", line 8, in <module>
    input_data = pd.read_csv(fname) #raw data file ---> pandas.core.frame.DataFrame type
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/io/parsers.py", line 465, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/io/parsers.py", line 251, in _read
    return parser.read()
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/io/parsers.py", line 710, in read
    ret = self._engine.read(nrows)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/io/parsers.py", line 1154, in read
    data = self._reader.read(nrows)
  File "pandas/parser.pyx", line 754, in pandas.parser.TextReader.read (pandas/parser.c:7391)
  File "pandas/parser.pyx", line 776, in pandas.parser.TextReader._read_low_memory (pandas/parser.c:7631) …
Run Code Online (Sandbox Code Playgroud)

csv python-3.x pandas

4
推荐指数
2
解决办法
3万
查看次数

当返回“ParserError: Error tokenizing data.C error: Expected 1 fields in line 9, saw 5”时,在“pd.read_csv”中该怎么办?

这是创建为 temp.cvs 的文件

温度.csv

我已将上述文件制作成temp.csv。然后运行以下内容。

df=pd.read_csv("temp.csv")
df
Run Code Online (Sandbox Code Playgroud)

然后我得到了

ParserError:标记数据时出错。C 错误:第 9 行应有 1 个字段,但看到了 5 个字段

所以我尝试了

df=pd.read_csv("temp.csv",error_bad_lines=False)
df
Run Code Online (Sandbox Code Playgroud)

并得到了。

{\rtf1\ansi\ansicpg1252\cocoartf1504\cocoasubrtf840

0 {\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}

1 {\colortbl;\red255\green255\blue255;\red53\gre...

2 {*\expandedcolortbl;;\cssrgb\c27059\c27059\c2...

3 \paperw11900\paperh16840\margl1440\margr1440\v...

4 \deftab560

5 \pard\pardeftab560\slleading20\partightenfactor0

我仍然不知道问题是什么...请帮助我...

python pandas

2
推荐指数
1
解决办法
4万
查看次数

使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

我有一个 CSV 文件,我正在使用 Python 来解析该文件。我发现文件中的某些行具有不同的列数。

001;Snow,Jon;19801201
002;Crom,Jake;19920103
003; ;Wise,Frank;19880303   <-- Invalid row
004;Wiseau,Tommy;4324;1323;2323  <-- Invalid row
Run Code Online (Sandbox Code Playgroud)

我想将这些无效行写入单独的文本文件中。

我使用这行代码从文件中读取。

df = pd.read_csv('names.csv', header=None,sep=';')
Run Code Online (Sandbox Code Playgroud)

我在这里找到的一种解决方案是使用以下代码跳过有问题的行:

data = pd.read_csv('file1.csv', on_bad_lines='skip')
Run Code Online (Sandbox Code Playgroud)

我可以从“跳过”更改为“警告”,这将给出有问题的行的行号并跳过该行。但这将返回警告消息,而不是行本身。

python csv pandas

2
推荐指数
1
解决办法
2082
查看次数

colab中的Python Pandas:UnicodeDecodeError:'utf-8'编解码器无法解码位置0中的字节0xd3:无效的延续byteUnicodeDecodeError:

伙计们,我一直在尝试从已经下载的 Kaggle 加载一些数据集。

hist_trans = pd.read_csv('historical_transactions.csv')

new_trans = pd.read_csv('new_merchant_transactions.csv')


train = pd.read_csv('train.csv', parse_dates=['first_active_month'])

test = pd.read_csv('test.csv', parse_dates=['first_active_month'])
Run Code Online (Sandbox Code Playgroud)

我遇到了这个错误 UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 0 中的字节 0xd3: 无效的连续字节

python pandas kaggle google-colaboratory

1
推荐指数
1
解决办法
7487
查看次数