python - 使用列值重命名/展平数据框
问题描述
我是 pandas 的新手,想知道是否有一种简单的方法可以通过编程方式进行转换。
foo = pd.DataFrame({'year': [2015,2016],'srev':[1,2]})
=>
bar = pd.DataFrame({'srev_year_2015': [1],'srev_year_2016':[2]})
视觉上看起来像这样:
富:
酒吧:
谢谢!
编辑:
我想以编程方式使用列名srev
并year
命名新列
解决方案
你可以试试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)