2017-12-23 162 views
1

私はpandasデータフレームを読み込んでいる.csvファイルを持っています。 .csvファイルの形式は次のとおりです。pandasデータフレームを日付時刻でソートするには

Date,Expense 
03/05/2015,75.0 
01/01/2015,45.0 
01/02/2015,245.0 
01/02/2015,1280.0 
01/02/2015,75.0 
01/05/2015,55.0 
01/03/2015,287.0 
01/07/2015,3185.0 
01/07/2015,981.0 
01/07/2015,342.0 
01/02/2015,64.8 

私はこのファイルを次のコードで読んでいます。

import pandas as pd 
df = pd.read_csv(text_file.csv, sep=',', dtype={'Date': str, 'Expense': float}) 

次に、df['Date']を介して日付時刻オブジェクトに変換します。

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

新しくソートされたデータを印刷すると、値が日付時間オブジェクトに変換されたが、ソートされていないことは明らかです。パンダに年代順に日付を並べ替えるにはどうしたらいいですか?

0 2015-03-05 
1 2015-01-01 
2 2015-01-02 
3 2015-01-02 
4 2015-01-02 
5 2015-01-05 
6 2015-01-03 
7 2015-01-07 
8 2015-01-07 
9 2015-01-07 
10 2015-01-02 
Name: Date, type: datetime64[ns] 
+1

あなたがバックに再割り当てする必要がありますがdf。 'sort_value'はインプレース操作ではありません。 –

答えて

1

バックinplace=trueパラメータを使用dfをかへの再割り当て:

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

OR

df.sort_values(by='Date', inplace=True) 

print(df['Date']) 

出力:

1 2015-01-01 
2 2015-01-02 
3 2015-01-02 
4 2015-01-02 
10 2015-01-02 
6 2015-01-03 
5 2015-01-05 
7 2015-01-07 
8 2015-01-07 
9 2015-01-07 
0 2015-03-05 
Name: Date, dtype: datetime64[ns] 
+1

私はそれを逃したとは思わない、ありがとう。 – Jon

関連する問題