我现在对类型很困惑。
我最近从Rstudio搬到了python。
假设
x = '20:05:20'
y = '20:06:10'
那么x和y只是字符串,即使它们代表时间。
为了只获取时间数据而不获取日期,我经常使用
在pd.to_日期时间(x,格式=“%H:%M:%S”).time()
datetime.time(20, 5, 20)
在pd.to_日期时间(y,格式=“%H:%M:%S”).time()
datetime.time(20, 6, 10)
但是,当我把x和y作为一个数据帧后,这个代码就不再工作了。
如果你愿意,你可以试试。在
ttmm公司=pd数据帧({'ttme':[x,y]})
ttmm['ttme']
0 20:05:20
1 20:06:10
Name: ttme, dtype: object
在pd.to_日期时间(ttmm['ttme',格式='%H:%M:%S')。time()
然后我得到了这个错误信息。在
AttributeError: 'Series' object has no attribute 'time'
为什么这样不行?在
虽然两者使用相同的函数
pd.to_datetime
,但返回的类对象不同。 你可以试试,然后你就得到了。在退货:
^{pr2}$如果您阅读源代码,
pd.to_datetime
函数返回DatetimeIndex
对象,DatetimeIndex
对象具有“time”属性。在但是,
pd.to_datetime(ttme['time'], format='%H:%M:%S')
函数返回:Series对象具有“dtypes/values/name…”属性,但不包括“time”。所以
AttributeError: 'Series' object has no attribute 'time'
消息是绝对正确的。在首先让我们回答你的问题:当执行
pd.to_datetime(ttmm['ttme'], format='%H:%M:%S')
时,你获得了一个熊猫系列。如果你想对它应用一个函数,比如time()
,你可能想这样做:现在只有两件小事:
也许是个小错误?(ttme而不是时间):
函数
to_datetime
足够聪明,可以在大多数情况下识别不带格式字符串的时间。你可以试试没有!在相关问题 更多 >
编程相关推荐