【问题标题】:Is there a difference between read_table and read_csv in pandas?pandas 中的 read_table 和 read_csv 有区别吗?
【发布时间】:2017-05-31 13:53:03
【问题描述】:

我已经对其进行了测试,并且还检查了没有明显差异的文档。无论哪种方式,我都想问一下以防万一。

您是否认为 read_csv 应该只用于 csv,即使它适用于其他类型?而 read_table 适用于任何事情?以及它们存在时是否相同?

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    您可以对常规分隔文件工作,不同之处在于默认参数,例如sep'\t'(制表符),用于read_table,但',' 用于read_csv。它们在下面的实现都是一样的

    如果你看source

    他们用不同的分隔符调用相同的函数:

    read_csv = _make_parser_function('read_csv', sep=',')
    read_csv = Appender(_read_csv_doc)(read_csv)
    
    read_table = _make_parser_function('read_table', sep='\t')
    read_table = Appender(_read_table_doc)(read_table)
    

    _make_parser_function:

    def _make_parser_function(name, sep=','):
    

    是接受sep arg 的通用方法

    【讨论】:

      【解决方案2】:

      唯一的区别实际上是sep 参数的默认值。

      read_csv 使用 sep=','read_table 使用 sep='\t',仅此而已。

      我们可以在inspect 模块的帮助下通过将签名parameters 作为有序映射来确认这一点。

      import inspect                                                                                                     
      import pandas as pd                                                                                                
      
      params_csv = inspect.signature(pd.read_csv).parameters                                                                
      params_table = inspect.signature(pd.read_table).parameters
      

      参数的对称差只有两个元素,它们都对应sep参数及其两个函数的不同默认值。

      >>> params_csv.items() ^ params_table.items()                                                                                
      {('sep', <Parameter "sep=','">), ('sep', <Parameter "sep='\t'">)}
      

      【讨论】:

        【解决方案3】:

        编辑:Upon discussion,决定保留read_table,所以这个函数现在是undeprecated

        如果你签出~~Pandas documentation for read_table:

        Deprecated 从 0.24.0 版开始。

        请改用pandas.read_csv(),如有必要,请传递sep='\t'

        所以建议不要使用read_table()

        【讨论】:

        • 此注释已从文档中删除。它似乎不再被弃用。
        猜你喜欢
        • 2015-09-30
        • 2020-11-06
        • 2012-12-06
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-11
        • 2019-06-16
        相关资源
        最近更新 更多