如何按日期时间

时间:2017-12-23 04:22:45

标签: python-3.x pandas sorting

我有一个.csv文件,我正在读入一个pandas数据框。 .csv文件具有以下格式

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'])

当我打印新排序的数据时,很明显这些值已转换为日期时间对象,但它们没有排序。如何让pandas按时间顺序对日期进行排序?

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 个答案:

答案 0 :(得分:2)

重新分配给df 使用inplace=true参数:

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]