我有一个带字符串的列,它将转换为datetime(西班牙语日期格式(
>>> df['Date'].head()
0 31/10/2019
1 31/10/2019
2 30/10/2019
3 30/10/2019
4 29/10/2019
Name: Date, dtype: object
转换
>>>pd.to_datetime(df['Date'], dayfirst = True)
>>>df['Date'].head()
0 2019-10-31
1 2019-10-31
2 2019-10-30
3 2019-10-30
4 2019-10-29
Name: Date, dtype: datetime64[ns]
现在我想按日期排序,结果奇怪地转换为:
>>>df['Date'] =df.sort_values(by=['Date'], ascending = True)
>>>df['Date'].head()
0 9443248_19
1 9443205_19
2 9441864_19
3 9441809_19
4 9440310_19
Name: Date, dtype: object
知道这里发生了什么吗?为什么类型会转换回对象?
确保您的"日期"列首先转换为datetime
,然后排序应该可以正常工作:
import pandas as pd
df = pd.DataFrame({'Date': ['31/10/2019', '31/10/2019', '30/10/2019', '30/10/2019', '29/10/2019']})
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df.sort_values(by='Date', ascending=True, inplace=True)
# df['Date']
# 4 2019-10-29
# 2 2019-10-30
# 3 2019-10-30
# 0 2019-10-31
# 1 2019-10-31
# Name: Date, dtype: datetime64[ns