如何在Python中按日期对DataFrame进行排序?

4
我尝试使用 df.sort_values(by='date') 按日期对下面显示的数据框进行排序,但它不起作用。有什么想法可以确保正确排序吗?
     symbol        date     open    close     high      low
0      GOOG  2007-01-03   232.77   233.56   238.09   230.32
1      GOOG  2007-01-05   241.01   243.35   243.51   238.82
2      GOOG  2007-01-04   234.27   241.39   241.73   233.94

...
2692   GOOG  2017-11-30  1022.37  1021.41  1028.49  1015.00
2693   GOOG  2017-11-29  1042.68  1021.66  1044.08  1015.65
2694   GOOG  2017-12-01  1015.80  1010.17  1022.49  1002.02

2
我没有给你的帖子点踩,但请注意,“它不工作”并不是一个充分的问题描述。请阅读“‘它不工作’并不是有用的”(http://idownvotedbecau.se/itsnotworking/)。 - juanpa.arrivillaga
@juanpa.arrivillaga 我只是想知道如何对其进行排序,我只是提到 df.sort_values(by='date') 不起作用。我不知道为什么。 - user7304253
好的。看,如果我要回答这个问题,我会说“只需使用df.sort_values”,但显然,“不起作用”,那么它为什么不起作用呢?提供一个最小可复现示例[mcve]。 - juanpa.arrivillaga
1
df.sort_values(by='date') returns sorted DF, but it doesn't sort in place. So either use: df = df.sort_values(by='date') or df.sort_values(by='date', inplace=True) - MaxU - stand with Ukraine
@MaxU 我认为这是一个问题。在我看来,df = df.sort_values(by='date') 是有效的。如果您回答的话,我会接受它。 - user7304253
3个回答

7

df.sort_values()返回已排序的数据框,但它不会直接在原数据框中排序。

因此,可以使用以下代码:

df = df.sort_values(by='date') 

或者
df.sort_values(by='date', inplace=True)

2

请尝试

df['Date']=pd.to_datetime(df.Date)
df.sort_values(['Date'])

AttributeError: 'DataFrame' object has no attribute 'sort' - user7304253

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接