我有一个.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]
答案 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]