3 回答

TA贡献1887条经验 获得超5个赞
您看到的是驻留在数据框和属性中的pandas.Index对象的名称。要保留您显示的内容,您需要删除属性中的对象名称。indexcolumnspandas.Indexcolumns
df.value.rename_axis(None, axis=1)
A B C
col_1
A 1 1 1
B 1 1 1
为了更进一步,您确实需要col_1从indexusing中删除reset_index
df.value.rename_axis(None, axis=1).reset_index()
col_1 A B C
0 A 1 1 1
1 B 1 1 1

TA贡献1815条经验 获得超13个赞
那是unstack您可以更改为的数据框series
df = pandas.DataFrame([
{'col_1': 'A', 'col_2': 'A', 'value': 1},
{'col_1': 'A', 'col_2': 'B', 'value': 1},
{'col_1': 'A', 'col_2': 'C', 'value': 1},
{'col_1': 'B', 'col_2': 'A', 'value': 1},
{'col_1': 'B', 'col_2': 'B', 'value': 1},
{'col_1': 'B', 'col_2': 'C', 'value': 1},
]).set_index(['col_1', 'col_2']).value.unstack()
df
col_2 A B C
col_1
A 1 1 1
B 1 1 1

TA贡献1806条经验 获得超8个赞
你可以这样做:
df.columns = [e[1] for e in df.columns.values]
print(df)
输出
A B C
col_1
A 1 1 1
B 1 1 1
添加回答
举报