熊猫在read_csv中跳过行时,我可以将它们记录到变量/日志文件中吗

坎·韦斯特伍德

我在这里看到了类似的问题,但是没有什么是我想要做的。

我正在使用tsv / csv文件读取

        try:
            dataframe = pd.read_csv(
                filepath_or_buffer=filename_or_obj,
                sep='\t',
                encoding='utf-8',
                skip_blank_lines=True,
                error_bad_lines=False,
                warn_bad_lines=True,
                dtype=data_type_dict,
                engine='python',
                quoting=csv.QUOTE_NONE
            )
        except UnicodeDecodeError:
            dataframe = pd.read_csv(
                filepath_or_buffer=exception_filename_or_obj,
                sep='\t',
                encoding='latin-1',
                skip_blank_lines=True,
                error_bad_lines=False,
                warn_bad_lines=True,
                dtype=data_type_dict,
                engine='python',
                quoting=csv.QUOTE_NONE
            )

我在文件中明确定义了标题,但有时我看到文件具有意外的其他列,并在控制台中获得以下消息

Skipping line 251643: Expected 20 fields in line 251643, saw 21

这对我的过程很好,我想知道一种方法,可以将这些消息或行记录到数据框或日志文件中,以便知道跳过了哪些行。由于文件可以由任何人提交,并且格式存在问题,因此我对修复此消息不感兴趣,只是记录了失败的行号

在此先感谢:)

编辑:包括tryexcept子句

阿努拉格

为了重现该问题,我使用了以下CSV文件(dummy.csv):

F1,F2,F3
11,A,10.54
18,B,0.12,low
24,A,19.00
10,C,7.01,low
22,D,39.11,high
49,E,12.12

可能会注意到,有些行具有额外的字段。

由于我们正在使用error_bad_lines=False,因此try-except不会引发任何错误/异常,所以这不是前进的道路。我们需要重定向stderr

from contextlib import redirect_stderr
import pandas as pd
# import io

with open('error_messages.log', 'w') as h:
    # f = io.StringIO()
    # with redirect_stderr(f):
    with redirect_stderr(h):
        df = pd.read_csv(filepath_or_buffer='dummy.csv',
                sep=',',            # change it for your data
                encoding='latin-1',
                skip_blank_lines=True,
                error_bad_lines=False,
                # dtype=data_type_dict,
                engine='python',
                # quoting=csv.QUOTE_NONE
                )
        # h.write(f.getvalue())      # Write the error messages to log file

print(df)

上面的代码会将消息写入日志文件!

这是日志文件的示例输出:

Skipping line 3: Expected 3 fields in line 3, saw 4
Skipping line 5: Expected 3 fields in line 5, saw 4
Skipping line 6: Expected 3 fields in line 6, saw 4

更新资料

根据建议修改了代码(在下面的评论中)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我的cronjob运行时,如何将某些消息记录到日志文件中?

来自分类Dev

将变量记录到Ansible主机上的日志文件中

来自分类Dev

熊猫:read_csv(在单个文件中读取多个表)

来自分类Dev

从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

来自分类Dev

从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

来自分类Dev

我可以编译 LESS 文件但不能将它们捆绑在 Angular-cli 中吗?

来自分类Dev

我可以有条件地使用熊猫read_csv转换器吗?

来自分类Dev

如何尝试将Log4j2记录到我的日志文件中,我已经尝试了所有可以想到的问题,这可能是Linux中的配置问题吗?

来自分类Dev

熊猫中的编码错误read_csv

来自分类Dev

将多个csv文件导入熊猫并将它们合并到一个DataFrame中

来自分类Dev

Python日志记录:dictConfig可以从文件中读取吗?

来自分类Dev

Scrapy Spider会记录我需要的文本(也可以在Scrapy Shell中使用),但不会将它们写在JSON文件中

来自分类Dev

跳过read_csv中缺少值的行

来自分类Dev

大文件的熊猫read_csv跳过行花费太多时间来加载数据

来自分类Dev

熊猫read_csv防止文件中的引号成为数据的一部分

来自分类Dev

头文件中定义了多个结构-我应该将它们移到单独的h和cpp文件中吗

来自分类Dev

头文件中定义了多个结构-我应该将它们移到单独的h和cpp文件中吗

来自分类Dev

PHP-我需要将所有变量(POST,$ _ SESSION,数组)记录到文件中

来自分类Dev

在熊猫中由read_csv返回的对象

来自分类Dev

在熊猫read_csv中以毫秒为单位解析日期

来自分类Dev

从熊猫中的read_csv获取对象大小

来自分类Dev

我可以将可选道具传递给Vuejs中的组件,以便将它们传递给组件吗?

来自分类Dev

我可以将可选道具传递给Vuejs中的组件,以便将它们传递给组件吗?

来自分类Dev

在谷歌分析中不小心混合了 2 个属性的数据。我可以将它们向后分开吗?

来自分类Dev

使用 Socket.IO,我可以发送消息并将它们存储在数据库中吗?

来自分类Dev

将我的Powershell动作记录到文件中

来自分类Dev

我可以关闭SLF4J SimpleLogger中的日志记录吗?

来自分类Dev

我可以将 drools .drl 文件存储在 bitbucket 存储库中并在运行时使用 spring boot 访问它们吗

来自分类Dev

NLog记录器未记录到发布版本中已配置的日志文件

Related 相关文章

  1. 1

    当我的cronjob运行时,如何将某些消息记录到日志文件中?

  2. 2

    将变量记录到Ansible主机上的日志文件中

  3. 3

    熊猫:read_csv(在单个文件中读取多个表)

  4. 4

    从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

  5. 5

    从Perl运行时,将bash脚本的输出记录到日志文件和stdout中

  6. 6

    我可以编译 LESS 文件但不能将它们捆绑在 Angular-cli 中吗?

  7. 7

    我可以有条件地使用熊猫read_csv转换器吗?

  8. 8

    如何尝试将Log4j2记录到我的日志文件中,我已经尝试了所有可以想到的问题,这可能是Linux中的配置问题吗?

  9. 9

    熊猫中的编码错误read_csv

  10. 10

    将多个csv文件导入熊猫并将它们合并到一个DataFrame中

  11. 11

    Python日志记录:dictConfig可以从文件中读取吗?

  12. 12

    Scrapy Spider会记录我需要的文本(也可以在Scrapy Shell中使用),但不会将它们写在JSON文件中

  13. 13

    跳过read_csv中缺少值的行

  14. 14

    大文件的熊猫read_csv跳过行花费太多时间来加载数据

  15. 15

    熊猫read_csv防止文件中的引号成为数据的一部分

  16. 16

    头文件中定义了多个结构-我应该将它们移到单独的h和cpp文件中吗

  17. 17

    头文件中定义了多个结构-我应该将它们移到单独的h和cpp文件中吗

  18. 18

    PHP-我需要将所有变量(POST,$ _ SESSION,数组)记录到文件中

  19. 19

    在熊猫中由read_csv返回的对象

  20. 20

    在熊猫read_csv中以毫秒为单位解析日期

  21. 21

    从熊猫中的read_csv获取对象大小

  22. 22

    我可以将可选道具传递给Vuejs中的组件,以便将它们传递给组件吗?

  23. 23

    我可以将可选道具传递给Vuejs中的组件,以便将它们传递给组件吗?

  24. 24

    在谷歌分析中不小心混合了 2 个属性的数据。我可以将它们向后分开吗?

  25. 25

    使用 Socket.IO,我可以发送消息并将它们存储在数据库中吗?

  26. 26

    将我的Powershell动作记录到文件中

  27. 27

    我可以关闭SLF4J SimpleLogger中的日志记录吗?

  28. 28

    我可以将 drools .drl 文件存储在 bitbucket 存储库中并在运行时使用 spring boot 访问它们吗

  29. 29

    NLog记录器未记录到发布版本中已配置的日志文件

热门标签

归档