Pandas应该吗DatetimeIndex.weekday日期时间索引返回索引还是numpy数组?

2024-10-01 11:37:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个PandasDatetimeIndex对象(从数据帧的索引中获得),我需要每个元素的工作日。我已经在Windows上用Python 3.6.5(64位)和Pandas 0.22.0运行了这个程序,并获得了一个Int64Index对象:

例如

In:
    ts = pd.DatetimeIndex([['2013-01-01 00:00:00', '2013-01-01 00:30:00',
               '2013-01-02 01:00:00', '2013-01-02 01:30:00',
               '2013-01-03 02:00:00', '2013-01-03 02:30:00',
               '2013-01-04 03:00:00', '2013-01-04 03:30:00',
               '2013-01-05 04:00:00', '2013-01-05 04:30:00']])
    ts.weekday

Out:
    Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')

我现在在pythonanywhere上运行脚本,它有Python 3.6.0Pandas 0.19.2,结果作为数组返回:

In:        
    ts = pd.DatetimeIndex(['2013-01-01 00:00:00', '2013-01-01 00:30:00',
                    '2013-01-02 01:00:00', '2013-01-02 01:30:00',
                    '2013-01-03 02:00:00', '2013-01-03 02:30:00',
                    '2013-01-04 03:00:00', '2013-01-04 03:30:00',
                    '2013-01-05 04:00:00', '2013-01-05 04:30:00'])
        ts.weekday
    Out:
        array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype=int32)

在这两个平台上,是否可以编写此代码以返回相同的结果(理想情况下是一个Index对象)?你知道吗


Tags: 数据对象in元素pandaswindowsoutpd
1条回答
网友
1楼 · 发布于 2024-10-01 11:37:10

在最近的一次更新中,此行为被更改为返回pd.Index而不是数组。为了向后兼容,您可以根据需要将结果强制转换为Int64Index。你知道吗

>>> pd.Index(ts.weekday, dtype=np.int64)
Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')

相关问题 更多 >