在一个个人项目中,我玩了一个数据框,并且有这样的内容
In[1] :
from random import random
companies = ['Google', 'Apple', 'Nike', 'Microsoft']
Years = [2020, 2019, 2018]
df = pd.DataFrame(columns=['Company', 'Year', 'Money'])
iterator = 0
for company in companies:
for year in Years:
df.loc[iterator] = [company, year, random()]
iterator += 1
df.set_index('Year').pivot(columns='Company', values='Money')
Out[1]:
Company Apple Google Microsoft Nike
Year
2018 0.290925 0.568462 0.459147 0.755947
2019 0.919250 0.529112 0.881319 0.700846
2020 0.064253 0.742629 0.232048 0.522739
我想乘坐
Company
和Year
,所以我的输出变成Out[2]:
Apple Google Microsoft Nike
2018 0.290925 0.568462 0.459147 0.755947
2019 0.919250 0.529112 0.881319 0.700846
2020 0.064253 0.742629 0.232048 0.522739
我知道原始索引名称可以这样删除:
del df.index.name
但是如何删除列索引名呢?
最佳答案
您可以使用以下方法执行此操作:
del df.columns.name
或同时使用
df.rename_axis(index=None, columns=None)
因此,在数据透视表语句的结尾处,将
rename_axis
方法链接如下:df = df.set_index('Year').pivot(columns='Company', values='Money')\
.rename_axis(index=None, columns=None)
输出:
Apple Google Microsoft Nike
2018 0.491759 0.102509 0.799196 0.603748
2019 0.640801 0.966476 0.401801 0.928443
2020 0.678182 0.373457 0.524619 0.389381