如何将tsv文件加载到Pandas DataFrame中?

scr*_*Owl 99 python csv pandas

我是python和pandas的新手.我正在尝试将tsv文件加载到熊猫中DataFrame.

这就是我正在尝试的错误和我得到的错误:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!
Run Code Online (Sandbox Code Playgroud)

huo*_*uon 109

注意:from_csv不鼓励从17.0开始:pd.read_csv改为使用

该文档列出了.from_csv函数,它似乎可以执行您想要的操作:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')
Run Code Online (Sandbox Code Playgroud)

如果你有标题,你可以通过header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,从17.0开始,不鼓励使用`from_csv`:使用`pd.read_csv`代替! (16认同)
  • 我在使用这种方法时遇到了一些问题 - 它非常慢并且最后的索引失败了.相反,我使用read_table(),它工作得更快,没有额外的参数. (4认同)
  • 这是一个糟糕的答案; 你可以用`pd.read_csv/read_table`本地读TSV,你只需要设置`delim_whitespace = True`或`sep` (3认同)
  • @rafaelvalle添加了已弃用的通知 (3认同)
  • 我必须使用以下内容:DataFrame.read_csv('filepath.tsv',sep ='',header = 0) (2认同)

ksi*_*ndi 72

截至17.0 from_csv,不鼓励.

使用pd.read_csv(fpath, sep='\t')pd.read_table(fpath).

  • 注意:从版本0.24.0开始不推荐使用read_table。请改用pandas.read_csv()。 (3认同)
  • 显然 `read_table` 后来在 0.25.0 中[未弃用](https://github.com/pandas-dev/pandas/issues/25220#issuecomment-506848168)。 (2认同)

Wes*_*ney 53

使用read_table(filepath).默认分隔符是选项卡

  • read_table 不需要任何参数。完美运行。 (2认同)

小智 7

打开文件,另存为.csv,然后应用

df = pd.read_csv('apps.csv', sep='\t')
Run Code Online (Sandbox Code Playgroud)

对于其他任何格式,只需更改sep标记


Moh*_*raf 7

尝试这个

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

您实际上需要修复sep参数。