python - Pandas :dt.dayofweek 显示不正确的值

标签 python pandas datetime dayofweek

我很难理解为什么星期几将星期五解释为第四周的某一天。

一些简单的数据:

import pandas as pd

# Simple time series data:
series = pd.Series({"2017-02-20": 1, '2017-02-21':2, '2017-02-22':3, '2017-02-23': 4, '2017-02-24':5})
datetime = pd.to_datetime(series.index)

# turn series in to dataframe:
df = pd.DataFrame(series.values, index=datetime)

现在,如果我们调用 argmax() 并询问今天是星期几,我们会得到:

df[0].argmax().dayofweek

# 4

所以说星期五是一周的第四天,无论以任何标准来看,这显然都是错误的。

我做错了什么吗?我在这个问题上花了太长时间!

我可以大胆猜测这个函数没有正确实现,但如果它无法计算任何任意日期时间索引的星期几,它对我来说有点失败

最佳答案

DateTimeIndex.dayofweek 的文档中所述,

The day of the week with Monday=0, Sunday=6

所以,是的,星期五将被标记为 4。如果您不喜欢这种将数字映射到一周中的日期的特殊映射,您可以随时将此映射映射到您喜欢的任何内容,例如如果您希望周日->周六为 1->7,

>>> custom_map = dict(zip(range(7), [2, 3, 4, 5, 6, 7, 1]))

>>> custom_map
{0: 2, 1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 1}

虽然我并没有真正看到这样做的值(value)。

关于python - Pandas :dt.dayofweek 显示不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495275/

相关文章:

python - 如何在该类方法中创建类实例?

python - 从一个源WAV构造几个WAV文件

python - Pandas 获取多列的排序索引顺序

python - 每天精确小时的值数组(5 天)

python - 如何在 Django 中将 UTC 时间转换为用户本地时间?

python - 运行最不常见子序列程序时出错

Java 反射 : create a instance using params from a treemap like python

python - 将 pandas 数据框的子集转置为多索引数据框

javascript - Chart.js 显示时间 (HH :MM:SS - 24 hour clock) on xAxis

java - 用Java计算日期和时间差