我有一个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格式。
有什么办法可以实现所需的格式吗?
像这样的。
df['Date']=pd.to_datetime(df['Date'])
df=df.sort_values(['Date'], ascending=False)
df.groupby(['Name', 'Date'], sort=False)['Friends'].sum().unstack('Date')