我有一个数据框
Year Start End Name Price
0 nan 0101 0331 Squirtle 876
1 2021 0101 1231 Squirtle 200
2 nan 0101 0331 Wartortle 1000
3 2021 0101 1231 Wartortle 1200
4 nan 0101 0331 Blastoise 3100
5 2021 0101 1231 Blastoise 4200
6 2022 0101 1231 Blastoise 10000
我想这样重塑
Name Squirtle Wartortle Blastoise
Year Start End
nan 0101 0331 876 1000 3100
2021 0101 1231 200 1200 4200
2022 0101 1231 10000
我试过了df.pivot(index=['Year', 'Start', 'End'], columns='Name', values='Price')
。但是没有任何运气。任何帮助,将不胜感激!
你很亲密 使用pivot_table
而不是pivot
获得所需的分组。唯一需要注意的是,您将需要替换NA
值(如果它们实际上NA
是字符串而不是string 'nan'
)。
df.fillna('NA').pivot_table(index=['Year', 'Start', 'End'], columns='Name', values='Price')
# returns:
Name Blastoise Squirtle Wartortle
Year Start End
2021.0 101 1231 4200.0 200.0 1200.0
2022.0 101 1231 10000.0 NaN NaN
NA 101 331 3100.0 876.0 1000.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句