在MultiIndex上更改Pandas索引数据类型

Sal*_*Sal 5 python unicode pandas

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

                              Column1
indexA   indexB                        
1001     aaa                        1
         bbb                        1
         ccc                        1
         ddd                        1
Run Code Online (Sandbox Code Playgroud)

由...制作

pd.read_sql(sql=sql, index_col=['indexA', 'indexB'])
Run Code Online (Sandbox Code Playgroud)

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

?  ?  ?  ?  ?  ?  ?  ?  ?
Run Code Online (Sandbox Code Playgroud)

跑步的时候

pd.read_sql(sql=sql, index_col=['indexA', 'indexB']).unstack().fillna(0)
Run Code Online (Sandbox Code Playgroud)

编辑:评论建议如下:

df = pd.read_sql(sql)
df['indexB'] = df['indexB'].astype(str)
df = df.set_index(('indexA', 'indexB'), drop=True)
Run Code Online (Sandbox Code Playgroud)

这是一个很好的解决我的问题(谢谢).如果可以在初始化期间完成此操作,仍然会很高兴.

Tay*_*nir 0

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

df= df.reset_index()
df['indexB'] = df['indexB'].astype(str)
Run Code Online (Sandbox Code Playgroud)