我有一个df
时间序列。我提取了索引,并希望将每个索引转换为datetime
。你要怎么做呢?我试着使用pandas.to_datetime(x)
,但是在我使用type()
之后检查时它并没有转换它
发布于 2016-03-12 02:53:56
只需尝试pydatetime()
>>> import pandas as pd
>>> t = pd.tslib.Timestamp('2016-03-03 00:00:00')
>>> type(t)
pandas.tslib.Timestamp
>>> t.to_pydatetime()
datetime.datetime(2016, 3, 3, 0, 0)
更改为datetime.date
类型
>>> t.date()
datetime.date(2016, 3, 3)
发布于 2018-05-02 02:46:51
只是更新一下这个问题,我已经尝试了最不正确的答案,它给了我这个警告。
usr/local/lib/python3.5/dist-packages/IPython/core/interactiveshell.py:2910: FutureWarning:不推荐to_datetime。使用self.to_pydatetime() exec(code_obj,self.user_global_ns,self.user_ns)
并建议我使用pydatetime()
例如
sample = Timestamp('2018-05-02 10:08:54.774000')
sample.to_datetime()
将返回datetime.datetime(2018, 4, 30, 10, 8, 54, 774000)
发布于 2014-11-20 18:01:55
我也遇到了同样的问题,并尝试了@aikramer2 2中的解决方案,将一列添加到我的df中,类型为“datetime.datetime”,但我还是得到了一个熊猫数据类型:
#libraries used -
import pandas as pd
import datetime as dt
#loading data into a pandas df, from a local file. note column [1] contains a datetime column -
savedtweets = pd.read_csv('/Users/sharon/Documents/ipython/twitter_analysis/conftwit.csv', sep='\t',
names=['id', 'created_at_string', 'user.screen_name', 'text'],
parse_dates={"created_at" : [1]})
print int(max(savedtweets['id'])) #535073416026816512
print type(savedtweets['created_at'][0]) # result is <class 'pandas.tslib.Timestamp'>
# add a column specifically using datetime.datetime library -
savedtweets['datetime'] = savedtweets['created_at'].apply(lambda x: dt.datetime(x.year,x.month,x.day))
print type(savedtweets['datetime'][0]) # result is <class 'pandas.tslib.Timestamp'>
我怀疑熊猫df不能存储datetime.datetime数据类型。当我创建一个简单的python列表来存储datetime.datetime值时,我获得了成功:
savedtweets = pd.read_csv('/Users/swragg/Documents/ipython/twitter_analysis/conftwit.csv', sep='\t',
names=['id', 'created_at_string', 'user.screen_name', 'text'],
parse_dates={"created_at" : [1]})
print int(max(savedtweets['id'])) #535073416026816512
print type(savedtweets['created_at'][0]) # <class 'pandas.tslib.Timestamp'>
savedtweets_datetime= [dt.datetime(x.year,x.month,x.day,x.hour,x.minute,x.second) for x in savedtweets['created_at']]
print savedtweets_datetime[0] # 2014-11-19 14:13:38
print savedtweets['created_at'][0] # 2014-11-19 14:13:38
print type(dt.datetime(2014,3,5,2,4)) # <type 'datetime.datetime'>
print type(savedtweets['created_at'][0].year) # <type 'int'>
print type(savedtweets_datetime) # <type 'list'>
https://stackoverflow.com/questions/25852044
复制相似问题