python时间索引序列数据的提取处理

lrh1983 2023-11-27 08:58:07

手头有一些时间索引数据,时间是2000-09-01到2023-09-01,现在想把其中一列的数据 “销售额”,在2022-09-01之前的数据乘以系数0.5,在2022-09-01之后的数据乘以系数0.6,最后两个部分的数据显示在新的列“调整后的销售额”里面。

我现在用切片工具进行操作,总是有错误提示,ValueError: Boolean array expected for the condition, not object。

dat['调整后的销售额'] = dat.loc['2020-09-01':'2022-09-01', ['销售额']] * 0.5
dat['调整后的销售额'] = dat.loc['2022-09-02 ':'2023-09-01', ['销售额']] * 0.6

并且,我估计就算不提示错误,新的列也会出错,可能会覆盖,数据显示不是我要求的,请大家写个代码,帮忙解决一下,谢谢。

刚写了一个条件语句,还是出问题,就是elif条件的结果总是覆盖掉前面if条件的结果,最后'调整后的销售额'的结果都是*0.6的,代码如下:

a = datetime.datetime(2022, 9, 1)
for i in dat.index:
    for j in dat['销售额']:
        if i <= a:
            dat['调整后的销售额'] = j * 0.5
        elif i > a:
            dat['调整后的销售额'] = .j * 0.6

大家给指点指点,到底那里错了,elif后面换成dat['调整后的销售额'].append(j * 0.6),还是不对。

...全文
172 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,978

社区成员

发帖
与我相关
我的任务
社区描述
分享Python数据分析、可视化、机器学习、图像处理有关知识和实例
社区管理员
  • 叶庭云
  • 极客飞兔
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧