Dataframe pd.datetime无法转换为日期
我有一个数据框,它有一个列“Date”,它是一个Dataframe pd.datetime无法转换为日期,dataframe,python-datetime,Dataframe,Python Datetime,我有一个数据框,它有一个列“Date”,它是一个字符串类型,由于我想使用列“Date”作为索引,首先我想将它转换为日期时间,所以我做了: data['Date'] = pd.to_datetime(data['Date']) 然后我做了 data = data.set_index('Date') 但是当我试着去做的时候 data = data.loc['01/06/2006':'09/06/2006',] 切片没有完成,没有错误,但是切片没有发生,我尝试了iloc data = dat
字符串
类型,由于我想使用列“Date”作为索引,首先我想将它转换为日期时间
,所以我做了:
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'>`
TypeError:无法使用的这些索引器[01/06/2006]对进行切片索引`
所以我得出结论,即使没有出现错误,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
因为我想从原始数据框创建一个具有特定日期的新数据框,所以我将列“Date”转换为索引
data = data.set_index(data['Date'])
然后使用loc
data1 = data.loc['01/06/2006':'09/06/2006']
我对Python非常陌生,我认为我需要将'Date'列转换为
datetime
,它是string
,但显然不是必需的。谢谢你的帮助@jezrael你好@jezrael,谢谢你的帮助,我尝试了这个data1=data.loc['2006-06-01':'2006-06-09']
结果是只有'2006-06-06'的数据。然后我还尝试了data=data[data.Date.between('2006-06-01','2006-06-09')]
,得到了同样的结果,“2006-06-06”的数据。我应该提到的是,还有另一列,每一天的时间间隔为10分钟,从0到24小时不等,返回的是什么?返回的是data1=data.loc['2006-06-01']
?当我这样做时,我得到,keyrerror:'标签[2006-06-01]不在[index]'
我认为它采用了YYYY-DD-MM格式。。。因为它返回[“2006-12-06”]的结果,但在[“2006-13-06”]之后,我会得到上面相同的错误