用日期列替换Pandas Dataframe页眉,但按升序排列。

问题描述 投票:0回答:1

我有一个5千多行的Dataframe,看起来像这样。它有一列Date,它的格式是MonthYear。Date列是字符串格式的。

Name   Date     Friends
A    June 2017   100
A    April 2017  45
A    March 2016  180
B    June 2017   43
B    April 2017  23
B    March 2016  23
C    June 2017   64
C    April 2017  643
C    March 2016  344

我想用下面的方式进行格式化,使Date列的唯一值变成标题。但按照月年的升序排列。

Name    March 2016  April 2017  June 2017
A         180         45            100
B          23         23            43
C         344         643           64

我尝试使用Pandas函数--Pivot。

df=df.pivot(index='Name',columns='Date',values='Friends')

但这并不是按升序排列月年,而是按字母顺序排列。此外,Pivot还将数据框架转换为Stacked格式。

有什么办法可以实现所需的格式吗?

pandas dataframe reshape
1个回答
0
投票

像这样的。

df['Date']=pd.to_datetime(df['Date'])
df=df.sort_values(['Date'], ascending=False)
df.groupby(['Name', 'Date'], sort=False)['Friends'].sum().unstack('Date')
© www.soinside.com 2019 - 2024. All rights reserved.