我有一个带有两个索引的Pandas数据框

                              Column1
indexA   indexB
1001     aaa                        1
         bbb                        1
         ccc                        1
         ddd                        1

由...制作
pd.read_sql(sql=sql, index_col=['indexA', 'indexB'])

MySQL正在将indexB作为unicode读取,我想将其转换为字符串。我的目标是透视表并使indexB中的条目成为列名。当我使用unicode值执行此操作时,我得到以下列名称:
�  �  �  �  �  �  �  �  �

运行时
pd.read_sql(sql=sql, index_col=['indexA', 'indexB']).unstack().fillna(0)

编辑:一条注释建议了以下内容:
df = pd.read_sql(sql)
df['indexB'] = df['indexB'].astype(str)
df = df.set_index(('indexA', 'indexB'), drop=True)

这是解决我的问题的好方法(谢谢)。如果能在初始化期间完成此操作,还是很高兴知道的。

最佳答案

可以在更改类型之前重设索引。

df= df.reset_index()
df['indexB'] = df['indexB'].astype(str)

关于python - 在MultiIndex上更改Pandas索引数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35164964/

10-12 23:28