csv 如何阅读UTF-8文件与Pandas?

q8l4jmvw  于 2022-12-15  发布在  其他
关注(0)|答案(5)|浏览(199)

我有一个包含twitter数据的UTF-8文件,我试图将其读入Python Dataframe ,但我只能得到一个'object'类型,而不是unicode字符串:

# file 1459966468_324.csv
#1459966468_324.csv: UTF-8 Unicode English text
df = pd.read_csv('1459966468_324.csv', dtype={'text': unicode})
df.dtypes
text               object
Airline            object
name               object
retweet_count     float64
sentiment          object
tweet_location     object
dtype: object

使用Pandas阅读UTF-8数据并将其强制转换为unicode的正确方法是什么?
这并不能解决问题:

df = pd.read_csv('1459966468_324.csv', encoding = 'utf8')
df.apply(lambda x: pd.lib.infer_dtype(x.values))

文本文件在这里:https://raw.githubusercontent.com/l1x/nlp/master/1459966468_324.csv

qnyhuwrf

qnyhuwrf1#

正如另一位发帖者提到的,你不妨试试:

df = pd.read_csv('1459966468_324.csv', encoding='utf8')

然而,这仍然会让你在打印dtype时看到'object'。要确认它们是utf8,在阅读CSV后尝试以下行:

df.apply(lambda x: pd.lib.infer_dtype(x.values))

输出示例:

args            unicode
date         datetime64
host            unicode
kwargs          unicode
operation       unicode
j13ufse2

j13ufse22#

encoding关键字与适当的参数一起使用:

df = pd.read_csv('1459966468_324.csv', encoding='utf8')
sxpgvts3

sxpgvts33#

Pandas用object s存储字符串,在python 3中,所有字符串默认为unicode,所以如果你使用python 3,你的数据已经是unicode了(不要被object类型误导)。
如果你有python 2,那么使用df = pd.read_csv('your_file', encoding = 'utf8')。然后尝试例如pd.lib.infer_dtype(df.iloc[0,0])(我猜第一列由字符串组成)

kkih6yb8

kkih6yb84#

看起来这个函数的位置已经移动了。我在1.0.1中使用过这个函数:

df.apply(lambda x: pd.api.types.infer_dtype(x.values))
ohtdti5x

ohtdti5x5#

编码关键字的适当参数可能是:

df = pd.read_csv('1459966468_324.csv', encoding='latin1')

相关问题