gpt4 book ai didi

python - 如何使用 Pandas 中的 datetimeindex 属性选择 df 的观察值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:56 28 4
gpt4 key购买 nike

给定一个这样的 df,我们有日期时间索引:

DateTime               A                           
2007-08-07 18:00:00 1
2007-08-08 00:00:00 2
2007-08-08 06:00:00 3
2007-08-08 12:00:00 4
2007-08-08 18:00:00 5
2007-11-02 18:00:00 6
2007-11-03 00:00:00 7
2007-11-03 06:00:00 8
2007-11-03 12:00:00 9
2007-11-03 18:00:00 10

我想使用索引的属性对观察结果进行子集化,例如:

  • 每月第一个工作日
  • 每月的最后一个工作日
  • “WOM-1FRI”这个月的第一个星期五
  • “WOM-3FRI”这个月的第三个星期五

我特别想知道这是否可以使用类似的方法来完成:

df.loc[(df['A'] < 5) & (df.index == 'WOM-3FRI'), 'Signal'] = 1

谢谢

最佳答案

你可以试试...

# FIRST DAY OF MONTH
df.loc[df[1:][df.index.month[:-1]!=df.index.month[1:]].index]

# LAST DAY OF MONTH
df.loc[df[:-1][df.index.month[:-1]!=df.index.month[1:]].index]

# 1st Friday
fr1 = df.groupby(df.index.year*100+df.index.month).apply(lambda x: x[(x.index.week==1)*(x.index.weekday==4)])

# 3rd Friday
fr3 = df.groupby(df.index.year*100+df.index.month).apply(lambda x: x[(x.index.week==3)*(x.index.weekday==4)])

如果你想删除 fr1fr3 索引中的额外级别:

fr1.index=fr1.index.droplevel(0)
fr3.index=fr3.index.droplevel(0)

关于python - 如何使用 Pandas 中的 datetimeindex 属性选择 df 的观察值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545669/

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