楼主: 我是小趴菜
393 0

[数据挖掘新闻] 将日期更改为pandas数据框中的特定条目 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

楼主
我是小趴菜 发表于 2022-11-10 10:13:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我在pandas中有一个数据框,它在索引中有错误:23:00:00到23:59:59之间的每个条目都有错误的日期。我需要在这两次之间的每个条目中减去一天(即24小时)。

我知道我可以获得这两次之间的条目df[df.hour == 23],因为df我的数据帧在哪里。但是,我可以仅修改数据框索引的特定条目的日期吗?

重置会花费我更多的时间,因为我的数据帧索引不是均匀间隔,如下图所示(两个连续条目之间的步长为15分钟和30分钟)。另请注意图中最后三个条目中的错误日期:它应该是2018-02-05而不是2018-02-06。

我试着这样做

df[df.index.hour == 23].index.day = df[df.index.hour == 23].index.day - 1
但我明白了 AttributeError: can't set attribute

样本数据:

2018-02-05 22:00:00    271.8000
2018-02-05 22:30:00    271.5600
2018-02-05 22:45:00    271.4400
2018-02-06 23:15:00    271.3750
2018-02-06 23:30:00    271.3425
2018-02-06 00:00:00    271.2700
2018-02-06 00:15:00    271.2300
2018-02-06 00:45:00    271.1500
2018-02-06 01:00:00    271.1475
2018-02-06 01:30:00    271.1425
2018-02-06 01:45:00    271.1400

预期产量:

2018-02-05 22:00:00    271.8000
2018-02-05 22:30:00    271.5600
2018-02-05 22:45:00    271.4400
2018-02-05 23:15:00    271.3750
2018-02-05 23:30:00    271.3425
2018-02-06 00:00:00    271.2700
2018-02-06 00:15:00    271.2300
2018-02-06 00:45:00    271.1500
2018-02-06 01:00:00    271.1475
2018-02-06 01:30:00    271.1425
2018-02-06 01:45:00    271.1400


解决办法:可以试试TimeDeltas。


如果您的数据框具有日期时间索引,则应该能够直接从中减去。


df[df.hour == 23] - pd.Timedelta('1 days')


如果df.index类型是字符串,那么你应该首先更改类型,然后减去: df.index = pd.to_datetime(df.index)


df.index - pd.Timedelta('1 days')




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pandas panda 数据框 Das attribute

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 15:13