pd.datetime 无法转换为日期
pd.datetime is failing to convert to date
我有一个数据框,其中有一列'Date',它是string
类型,因为我想使用列'Date'作为索引,首先我想要将其转换为 datetime
,所以我这样做了:
data['Date'] = pd.to_datetime(data['Date'])
然后我做了,
data = data.set_index('Date')
但是当我尝试这样做时
data = data.loc['01/06/2006':'09/06/2006',]
切片没有完成,没有错误但是切片没有发生,我试过 iloc
data = data.iloc['01/06/2006':'09/06/2006',]
错误信息如下:
TypeError: cannot do slice indexing on <class `'pandas.tseries.index.DatetimeIndex'> with these indexers [01/06/2006] of <type 'str'>`
所以我得出的结论是 pd.to_datetime
没有工作,即使没有引发错误?
任何人都可以澄清发生了什么事吗?提前致谢
您似乎需要将 datetime
字符串的顺序更改为 YYYY-MM-DD
:
data = data.loc['2006-06-01':'2006-06-09']
样本:
data = pd.DataFrame({'col':range(15)}, index=pd.date_range('2006-06-01','2006-06-15'))
print (data)
col
2006-06-01 0
2006-06-02 1
2006-06-03 2
2006-06-04 3
2006-06-05 4
2006-06-06 5
2006-06-07 6
2006-06-08 7
2006-06-09 8
2006-06-10 9
2006-06-11 10
2006-06-12 11
2006-06-13 12
2006-06-14 13
2006-06-15 14
data = data.loc['2006-06-01':'2006-06-09']
print (data)
col
2006-06-01 0
2006-06-02 1
2006-06-03 2
2006-06-04 3
2006-06-05 4
2006-06-06 5
2006-06-07 6
2006-06-08 7
2006-06-09 8
因为我想要创建一个新的 DataFrame,其中包含来自原始 DataFrame 的特定日期,我将列 'Date' 转换为 Index
data = data.set_index(data['Date'])
然后使用 loc
创建新的数据框
data1 = data.loc['01/06/2006':'09/06/2006']
我是 Python 的新手,我认为我需要将 datetime
列 'Date' 转换为 string
,但显然没有必要。感谢您的帮助@jezrael
我有一个数据框,其中有一列'Date',它是string
类型,因为我想使用列'Date'作为索引,首先我想要将其转换为 datetime
,所以我这样做了:
data['Date'] = pd.to_datetime(data['Date'])
然后我做了,
data = data.set_index('Date')
但是当我尝试这样做时
data = data.loc['01/06/2006':'09/06/2006',]
切片没有完成,没有错误但是切片没有发生,我试过 iloc
data = data.iloc['01/06/2006':'09/06/2006',]
错误信息如下:
TypeError: cannot do slice indexing on <class `'pandas.tseries.index.DatetimeIndex'> with these indexers [01/06/2006] of <type 'str'>`
所以我得出的结论是 pd.to_datetime
没有工作,即使没有引发错误?
任何人都可以澄清发生了什么事吗?提前致谢
您似乎需要将 datetime
字符串的顺序更改为 YYYY-MM-DD
:
data = data.loc['2006-06-01':'2006-06-09']
样本:
data = pd.DataFrame({'col':range(15)}, index=pd.date_range('2006-06-01','2006-06-15'))
print (data)
col
2006-06-01 0
2006-06-02 1
2006-06-03 2
2006-06-04 3
2006-06-05 4
2006-06-06 5
2006-06-07 6
2006-06-08 7
2006-06-09 8
2006-06-10 9
2006-06-11 10
2006-06-12 11
2006-06-13 12
2006-06-14 13
2006-06-15 14
data = data.loc['2006-06-01':'2006-06-09']
print (data)
col
2006-06-01 0
2006-06-02 1
2006-06-03 2
2006-06-04 3
2006-06-05 4
2006-06-06 5
2006-06-07 6
2006-06-08 7
2006-06-09 8
因为我想要创建一个新的 DataFrame,其中包含来自原始 DataFrame 的特定日期,我将列 'Date' 转换为 Index
data = data.set_index(data['Date'])
然后使用 loc
data1 = data.loc['01/06/2006':'09/06/2006']
我是 Python 的新手,我认为我需要将 datetime
列 'Date' 转换为 string
,但显然没有必要。感谢您的帮助@jezrael