pandas中的read_table和read_csv有区别吗?

时间:2017-01-16 16:52:35

标签: python-3.x pandas

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

你认为read_csv应该只用于csv,即使它适用于其他类型吗?而read_table适用于任何事情?如果它们存在时它们是相同的那么?

3 个答案:

答案 0 :(得分:11)

您可以使用常规分隔文件,但区别在于默认参数,例如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

的一般方法

答案 1 :(得分:0)

的区别实际上是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'">)}

答案 2 :(得分:0)

如果您签出Pandas documentation for read_table

  

Deprecated自版本0.24.0。

     

改为使用pandas.read_csv(),并在必要时传递sep='\t'

因此,建议不要使用read_table()