数据帧编码

Dataframe encoding

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

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']

有办法解决吗?我试着看看我是否可以在创建数据帧时对其本身进行编码,但我似乎也做不到。

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

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

或者如果文件使用 BOM

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

如果您不使用 csv,并且想对字符串索引进行编码,这对我有用:

df.index = df.index.str.encode('utf-8')

只需将 "u" 放在 utf8 字符串前面,这样

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

它会起作用。