Reputation:
I try to sort dataframe shown below by date using df.sort_values(by='date')
however it doesn't work. Any ideas how can I do this to be sure that it is sorted properly?
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
Upvotes: 4
Views: 8508
Reputation: 122
If you have a dataframe like this below:
df = pd.DataFrame({'col1' : ['A', 'A', 'B', np.nan, 'D', 'C'],
'col2' : [2, 1, 9, 8, 7, 4],
'col3': [0, 1, 9, 4, 2, 3], })
This is how you sort it:
df = df.sort_values(by=['col1'])
Similar problem with solution on stackoverflow: how to sort pandas dataframe from one column Panda reference : http://pandas.pydata.org/pandas-docs/version/0.19.2/generated/pandas.DataFrame.sort.html
Upvotes: 1
Reputation: 210832
df.sort_values()
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)
Upvotes: 7
Reputation: 1670
Try
df['Date']=pd.to_datetime(df.Date)
df.sort_values(['Date'])
Upvotes: 2