Python 展平数据透视表
这是我的后续行动。与透视表不同,是否可以将表展平为如下所示:Python 展平数据透视表,python,pandas,Python,Pandas,这是我的后续行动。与透视表不同,是否可以将表展平为如下所示: data = {'year': ['2016', '2016', '2015', '2014', '2013'], 'country':['uk', 'usa', 'fr','fr','uk'], 'sales': [10, 21, 20, 10,12], 'rep': ['john', 'john', 'claire', 'kyle','kyle'] } pd.DataFrame(data).piv
data = {'year': ['2016', '2016', '2015', '2014', '2013'],
'country':['uk', 'usa', 'fr','fr','uk'],
'sales': [10, 21, 20, 10,12],
'rep': ['john', 'john', 'claire', 'kyle','kyle']
}
pd.DataFrame(data).pivot_table(index='country', columns='year', values=['rep','sales'])
rep sales
year 2013 2014 2015 2016 2013 2014 2015 2016
country
fr None kyle claire None None 10 20 None
uk kyle None None john 12 None None 10
usa None None None john None None None 21
平桌:
rep_2013 rep_2014 rep_2015 rep_2016 sales_2013 sales_2014 sales_2015 sales_2016
country
fr None kyle claire None None 10 20 None
uk kyle None None john 12 None None 10
usa None None None john None None None 21
试试这个:
df.columns = df.columns.get_level_values(0)
其次是:
df.columns = [' '.join(col).strip() for col in df.columns.values]
这将使您的多索引平坦化请参见
解决方案
真棒的回答!非常感谢。如果有些列不是字符串,我建议:
df.columns=['.''.'.join([str(c)表示c_列表中的c])表示df.columns.values中的c_列表]
df.columns = df.columns.to_series().str.join('_')