我有一个带有MultiIndex和尺寸为18 x 1的数据框。我想获得一个尺寸为6 x 3的数据框,其中航空公司名称为行索引,情绪为负,中性和正数为列名。最快的方法是什么?
我这里有一个数据示例:
idx = pd.MultiIndex.from_product([['airline_1', 'airline_2', 'airline_3','airline_4', 'airline_5', 'airline_6'],
['negative', 'neutral', 'positive']],
names=['airline', 'sentiment'])
col = ['test']
df = pd.DataFrame('-',idx,col)
test = []
for i in range(18):
test.append(i)
df['value'] = test
df = df.drop('test', axis = 1)
一旦你知道这个方法,这很简单:
只是df.unstack()
会让你到那里:)
要将MultiIndex删除为列,并保持情绪分数,请执行以下操作:
df.columns = df.columns.droplevel()