Pandas 中有哪些功能和参数可以用来打开制表符分隔的文本文件?

What function and parameters are available in Pandas in order to open a tab delimited text file?

我有一个文本文件如下:

   Movie_names Rating
      "A"         10
      "B"         6.5

文本文件以制表符分隔。有些电影片名用双引号括起来。如何将其读入 pandas 数据帧并从电影名称中删除引号?

我尝试使用以下代码:

import pandas as pd
data = pd.read_csv("movie.txt")

但是,它说存在 Unicode 解码错误。应该怎么办?

首先你会想要 导入 pandas

Df = pandas.read_csv("file.csv")

去掉双引号
Df2 = Df['columnwithquotes'].apply(lambda x: x.replace('"', ''))

您可以使用 read_table,因为它的 quotechar 参数默认设置为 '"',因此会删除双引号。

import pandas as pd
from io import StringIO

the_data = """
A   B   C   D
ABC 2016-6-9 0:00   95  "foo foo"
ABC 2016-6-10 0:00  0   "bar bar"
"""
df = pd.read_table(StringIO(the_data))
print(df)

#      A               B   C        D
# 0  ABC   2016-6-9 0:00  95  foo foo
# 1  ABC  2016-6-10 0:00   0  bar bar

首先,您可以使用 read_tableread_csv 读取制表符分隔的文件。前者默认使用tab分隔符,后者需要指定:

import pandas as pd
df = pd.read_csv('yourfile.txt', sep='\t')

或者:

import pandas as pd
df = pd.read_table('yourfile.txt')

如果您收到编码错误,那是因为 read_table 不理解文件的文本编码。您可以通过直接指定编码来解决此问题,例如对于 UTF8:

import pandas as pd
df = pd.read_table('yourfile.txt', encoding='utf8') 

如果您的文件使用的是 different encoding,则需要指定它。