小编Nit*_*Das的帖子

Pandas 中两个时间戳之间的差异

我有以下两个时间列,“Time1”和“Time2”。我必须计算 Pandas 中的“差异”列,即 (Time2-Time1):

Time1         Time2                 Difference
8:59:45       9:27:30               -1 days +23:27:45
9:52:29       10:08:54              -1 days +23:16:26
8:07:15       8:07:53               00:00:38
Run Code Online (Sandbox Code Playgroud)

当 Time1 和 Time2 在不同的时间时,我得到的结果为“-1 days +”。我想要的前两个值的输出如下:

Time1         Time2                 Difference
8:59:45       9:27:30               00:27:45
9:52:29       10:08:54              00:16:26
Run Code Online (Sandbox Code Playgroud)

如何在 Pandas 中获得此输出?

两个时间值都在 'datetime64[ns]' dtype 中。

timespan datetime-format pandas

5
推荐指数
1
解决办法
9234
查看次数

QuantileRegression ValueError:操作数无法与形状一起广播

我正在尝试使用 Python 中的分位数回归来预测我的目标变量。

我考虑用于训练和验证的数据来自2015年10月至2017年12月31日期间。

现在模型已经开发出来,我正在尝试预测 2018 年 1 月的值,这会引发以下错误:

ValueError:操作数无法与形状 (34,) (33,) 一起广播

mod = smf.quantreg('ASBCU_SUM~Month+Year+WeekofMonth+DayNum+isHoliday+PCOP_CS+PCOP_LS+PCOP_IFS+PCOP_LSS+PCOP_FSS+PCOP_FS+DayOfWeek_6+DayOfWeek_5+DayOfWeek_2+DayOfWeek_7+DayOfWeek_3+DayOfWeek_4',dfTrainingData)

res = mod.fit(q=0.8)
Run Code Online (Sandbox Code Playgroud)

如果我检查,错误来自 statmodels 内的分位数回归.py 文件。

diff = np.max(np.abs(beta - beta0))
Run Code Online (Sandbox Code Playgroud)

我已经浏览过有关堆栈溢出的类似帖子,建议检查目标变量的数据类型是否为数字。这是变量的数据类型:

ASBCU_SUM:int64

月份:类别

年份:类别

每月一周:类别

是假期:int64

DayNum:int32

PCOP_SUM:int64

PCOP_CS:int64

PCOP_LS:int64

PCOP_IFS:int64

PCOP_LSS:int64

PCOP_FS:int64

PCOP_FSS:int64

DayOfWeek_3:float64

DayOfWeek_2:float64

DayOfWeek_5:float64

DayOfWeek_7:float64

DayOfWeek_4:float64

DayOfWeek_6:float64

使用 2015-2017 年数据开发模型时数据类型相同。

我真的很感谢任何帮助..

python pandas statsmodels quantile-regression

5
推荐指数
1
解决办法
2360
查看次数

Python 将 1970 年之前日期的日期格式从 dd/mm/yy 更改为 dd/mm/yyyy

我有一个 python pandas 数据框,它有一个如下所示的日期列:

'Birth Date'
0     22/04/73
1     22/03/53
2     22/04/73
3     14/08/77
4     08/05/50
Run Code Online (Sandbox Code Playgroud)

我想将此对象数据类型转换为日期格式,如下所示:04/06/1953...

我尝试转换为 datetime 数据类型,如下所示:

df['Birth Date']=pandas.to_datetime(df['Birth Date'],format='%d/%m/%y')
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:

0    1973-04-22
1    2053-03-22
2    1973-04-22
3    1977-08-14
4    2050-05-08
Run Code Online (Sandbox Code Playgroud)

如何将 1953、1950 等作为年份而不是 2053、2050?

python string-to-datetime pandas

3
推荐指数
1
解决办法
2226
查看次数