gpt4 book ai didi

python - 如何从 pandas 的 DatetimeIndex 中删除年份和月份?

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:31 25 4
gpt4 key购买 nike

我有一个 pandas 数据框:

import numpy as np
import pandas as pd
idx = pd.DataFrame(["2017-01-01 00:00:41","2017-01-01 00:06:53",\
"2017-01-01 00:07:10"],columns=["DateTime"])
df = pd.DataFrame([221,676,356],columns=["Value"])
df.index = pd.DatetimeIndex(idx["DateTime"])
df

它会产生类似的东西

      DateTime         Value
2017-01-01 00:13:41 221
2017-01-02 00:06:53 676
2017-01-05 00:22:10 356

接下来我想做的是从这个 DateTime 索引中删除年份和月份信息,以便生成

  DateTime     Value
01 00:13:41 221
02 00:06:53 676
05 00:22:10 356

我知道在 DataFrame idx 中我可以按如下方式删除它:

idx["DateTime"] = idx["DateTime"].str(8:)

问题是 pandas 不再将其识别为 DatetimeIndex。此外,绘制这个变得非常棘手(我随后想做的事情)。我有什么想法可以实现这一目标吗? (我确信这是可以做到的,Python/pandas 太通用了,不可能不使用一些狡猾的技巧来实现它!)

最佳答案

如果您只是想要时间,这就是您正在寻找的

df.index = df.index.time

>>>df
Value
00:00:41 221
00:06:53 676
00:07:10 356

>>>type(df.index[0])
datetime.time
<小时/>

据我所知,两个可能的对象是 time 对象和 datetime 对象,这意味着无论哪种方式,您都需要当年的一些东西......

您可以尝试像这样标准化所有年份:

df.index = [pd.datetime.strptime(s, '%d %HH-%MM-%SS') 
for s in [pd.datetime.strftime(values, "%d %HH-%MM-%SS")
for values in df.index]]

(只是第一次尝试......也许是完成此任务的更简单的方法......)

关于python - 如何从 pandas 的 DatetimeIndex 中删除年份和月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com