数据框编码

10

有没有一种方法可以对我的数据框的索引进行编码? 我有一个数据框,其中索引是国际会议的名称。

df2= pd.DataFrame(index=df_conf['Conference'], columns=['Citation1991','Citation1992'])

我一直遇到以下问题: KeyError: 'Leitf\xc3\xa4den der angewandten Informatik'

每当我的代码引用具有未知ASCII字母的外国会议名称时,就会出现此错误。

我尝试了:

df.at[x.encode("utf-8"), 'col1']

df.at[x.encode('ascii', 'ignore'), 'col']

有什么解决办法吗?我试图在创建数据帧时对数据帧本身进行编码,但似乎我也无法这样做。


也许,您可以发布尝试过的命令示例和数据样本。 - Guillaume Jacquenot
3个回答

17
如果您没有使用CSV,且希望对字符串索引进行编码,以下是我使用的方法:
df.index = df.index.str.encode('utf-8')

11

在读取输入文件时,应使用选项encoding设置编码。

df = pd.read_csv('bibliography.csv', delimiter=',', encoding="utf-8")

或者如果文件使用 BOM

df = pd.read_csv('bibliography.csv', delimiter=',', encoding="utf-8-sig")

4
在发布之前我实际上看到了那个,但是它对我没有帮助,因为不幸的是我不是从csv读取而是从sql注释中读取。所以我正在使用pd.read_sql()。有什么帮助吗? - BKS

2

Just put "u" in front of utf8 strings such that

df2= pd.DataFrame(index=df_conf[u'Conference'], columns=[u'Citation1991',u'Citation1992'])

它会起作用。


"u" 是什么意思? - Pythoner
1
"u"是用于创建Unicode字符串的前缀。https://docs.python.org/2/tutorial/introduction.html#unicode-strings - Mahmoud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接