所以这是我的数据框
Ticker Owner \
SEC Form 4
Nov 09 02:19 PM HSY HERSHEY TRUST
Nov 09 02:05 PM HSY HERSHEY TRUST CO
Nov 09 02:03 PM WDFC PITTARD DANIEL E
Nov 09 01:34 PM IMGN Enyedy Mark J
Nov 09 01:25 PM ORI ZUCARO ALDO C
我正在尝试将索引(SEC表单4)转换为日期时间对象,因此我可以使用该对象的方法。但是,我喜欢日期的当前格式样式(11月09日02:19 PM),并且不想要用(2016-11-09 14:19)等替换它。
pd.to_datetime(df.index, format = '%b %d')
pd.to_datetime(df.index, format = '%b %d %I:%M %p' )
我玩了一些这些格式参数,但似乎这些将日期的外观显示样式更改为类似(2016-11-09 14:19:00)格式,这不是我想要的格式。
我甚至试图看看是否有一个我可以转换为的dtype日期时间(所以我不必更改显示外观)但我没有找到这样的dtype的运气。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dtypes.html
谢谢。
答案 0 :(得分:1)
也许您错过了追加年份,因为未在数据中指定。这是一个可能的解决方案。
zz = """"SEC Form 4" Ticker Owner
"Nov 09 02:19 PM" "HSY" "HERSHEY TRUST"
"Nov 09 02:05 PM" HSY "HERSHEY TRUST CO"
"Nov 09 02:03 PM" WDFC "PITTARD DANIEL E"
"Nov 09 01:34 PM" IMGN "Enyedy Mark J"
"Nov 09 01:25 PM" ORI "ZUCARO ALDO C"
"""
df = pd.read_table(io.StringIO(zz), delim_whitespace=True)
df.set_index('SEC Form 4', inplace=True)
# Adding the missing year
df.index = '2016 ' + df.index
# There is no need to detail the expected format
df.index = pd.to_datetime(df.index)
print(df.index.dtype)
print(df)
# datetime64[ns]
# Ticker Owner
# 2016-11-09 14:19:00 HSY HERSHEY TRUST
# 2016-11-09 14:05:00 HSY HERSHEY TRUST CO
# 2016-11-09 14:03:00 WDFC PITTARD DANIEL E
# 2016-11-09 13:34:00 IMGN Enyedy Mark J
# 2016-11-09 13:25:00 ORI ZUCARO ALDO C