首页 > 解决方案 > 使用列值重命名/展平数据框

问题描述

我是 pandas 的新手,想知道是否有一种简单的方法可以通过编程方式进行转换。

foo = pd.DataFrame({'year': [2015,2016],'srev':[1,2]}) 

=>

bar = pd.DataFrame({'srev_year_2015': [1],'srev_year_2016':[2]})

视觉上看起来像这样:

富:

在此处输入图像描述

酒吧:

在此处输入图像描述

谢谢!

编辑:

我想以编程方式使用列名srevyear命名新列

标签: pythonpandasnumpy

解决方案


你可以试试pivot_table

output = foo.pivot_table(columns='year')

输出:

year  2015  2016
srev     1     2

它不会为您提供您提供的列名,但您可以手动重命名它和索引。

output.columns = [f'{output.index[0]}_{output.columns.name}_{col}' for col in output.columns]
output = output.reset_index(drop=True)

推荐阅读