MEh*_*san 2 python sorting dataframe pandas
我有这个数据帧df由两列的ID和Date:
ID Date
4 1/1/2008
3 1/1/2007
2 9/23/2010
2 6/3/1998
2 1/1/2001 # Note this date should be before "6/3/1998" for ID# 2
1 4/30/2003
Run Code Online (Sandbox Code Playgroud)
我要排序df的ID和Date降序排列(最大- >最小的),但是当我尝试下面的脚本这似乎不工作:
print df.sort_values(by=["ID", "Date"], ascending=["False", "False"])
Run Code Online (Sandbox Code Playgroud)
输出应按此降序排列:
ID Date
4 1/1/2008
3 1/1/2007
2 9/23/2010
2 1/1/2001
2 6/3/1998
1 4/30/2003
Run Code Online (Sandbox Code Playgroud)
知道如何按正确的降序对日期进行排序?
您首先需要将Date类型的String从String转换为Date.
df['Date'] = pd.to_datetime(df['Date'], format="%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)
现在您可以使用df.sort_values
print df.sort_values(by=["ID", "Date"], ascending=[False, False])
Run Code Online (Sandbox Code Playgroud)
输出:
ID Date
0 4 2008-01-01
1 3 2007-01-01
2 2 2010-09-23
4 2 2001-01-01
3 2 1998-06-03
5 1 2003-04-30
Run Code Online (Sandbox Code Playgroud)
在你的代码中,对于升序参数,你传递字符串"False",但它应该是boolFalse