python - Pandas DatetimeIndex.weekday 应该返回索引还是 numpy 数组?
问题描述
我有一个 PandasDatetimeIndex
对象(从数据框的索引中获得),我需要每个元素的工作日。我一直Python 3.6.5
在 Windows 上使用(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
其中 hasPython 3.6.0
并且Pandas 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
在两个平台上返回相同的结果(理想情况下是一个对象)?
解决方案
此行为在最近的更新中已更改为返回 apd.Index
而不是数组。为了向后兼容,您始终可以Int64Index
根据需要将结果转换为 a。
>>> pd.Index(ts.weekday, dtype=np.int64)
Int64Index([1, 1, 2, 2, 3, 3, 4, 4, 5, 5], dtype='int64')
推荐阅读
- c# - 在无法覆盖触发方法的情况下并行运行方法
- qt - 我可以使用正则表达式从句子中提取两个单词吗?
- git - 将文件从主目录移动到分支,然后从主目录中删除
- flutter - 我尝试使用 flutter_bloc 检查列表中是否有一个数字,但列表正在更改但它没有在听
- c - 如何纠正我的合并排序实现中的错误
- javascript - 是否有任何角度管道或方法可以获取美国和加拿大的 UTC 中部时间?
- python - 熊猫副本正在更改原始数据框,即使使用 copy(deep=True)
- react-native - 在标签栏按钮上现有显示视图的顶部显示视图单击 rectnative
- ibm-midrange - 使用 IBM I 系列批量导出所有库
- android-studio - 通知Android工作室中的自定义ProgressBar