【发布时间】:2016-02-26 10:18:06
【问题描述】:
我有一个 pandas 数据框(名为 s),其中一列(日期)是时间戳
s.date[0]
Out[126]:
Timestamp('2014-01-28 00:52:00-0500', tz='dateutil//usr/share/zoneinfo/America/New_York')
在代码中的某个时刻,我需要选择 s 的一个子集(使用 idx,一个布尔值列表)。输出是:
s.date[idx]
Out[125]:
1019 2014-12-01 00:52:00-05:00
1020 2014-12-01 01:52:00-05:00
1021 2014-12-01 02:52:00-05:00
Name: date, dtype: datetime64[ns, tzfile('/usr/share/zoneinfo/America/New_York')]
因为我只对小时感兴趣,所以我想我可以这样做:
s.date.hour
当然,我得到了错误
AttributeError: 'Series' object has no attribute 'hour'
认为一个人可以做到:
s.date[0].hour
Out[128]: 0
我说,让我使用 lambda 将 .hour 应用于每个“行”。因此:
s.date[idx].apply(lambda x: x.hour)
Out[129]:
1019 5
1020 6
1021 7
如您所见,我得到的时间不是“东部时间”,而是 UTC。
我在网上做了一些搜索,但没有... 有没有办法获得非UTC时间?
谢谢!
【问题讨论】:
-
使用
.dt访问器...