【发布时间】:2020-11-14 02:40:58
【问题描述】:
所以我有这样的股市数据
Date Open High Low Close Weekday
0 2007-09-17 4518.450195 4549.049805 4482.850098 4494.649902 Monday
1 2007-09-18 4494.100098 4551.799805 4481.549805 4546.200195 Tuesday
2 2007-09-19 4550.25 4739.0 4550.25 4732.350098 Wednesday
3 2007-09-20 4734.850098 4760.850098 4721.149902 4747.549805 Thursday
4 2007-09-21 4752.950195 4855.700195 4733.700195 4837.549805 Friday
5 2007-09-24 4837.149902 4941.149902 4837.149902 4932.200195 Monday
6 2007-09-25 4939.100098 4953.899902 4878.149902 4938.850098 Tuesday
7 2007-09-26 4937.600098 4980.850098 4930.350098 4940.5 Wednesday
8 2007-09-27 4942.700195 5016.399902 4942.700195 5000.549805 Thursday
9 2007-09-28 4996.450195 5055.799805 4996.450195 5021.350098 Friday
10 2007-10-01 5021.5 5089.299805 5001.350098 5068.950195 Monday
11 2007-10-03 5069.0 5261.350098 5034.149902 5210.799805 Wednesday
12 2007-10-04 5211.649902 5233.100098 5126.049805 5208.649902 Thursday
13 2007-10-05 5208.149902 5248.549805 5164.5 5185.850098 Friday
(为了更好的视觉表现,我已经在星期五之后放置了空白)
我已将日期字符串转换为 Weekday 列中的星期几。我想要做的是对于我想要找到的每一周,哪一天的开盘价最低,并增加该天的变量。所以在示例数据中应该是
第 1 周(索引 0-4)- 周二最低 Open 价格
第 2 周(索引 5-9)- 周一最低 Open 价格
第 3 周(指数 10-13)- 周一最低 Open 价格
所以它应该打印Monday -2, Tuesday -1, Wednesday - 0, Thursday -0, Friday -0
我该怎么做?
【问题讨论】:
-
df.rolling('1W')会给你 1 周的窗口,它有.min()来获得最小值。从那里开始,就可以按照您想要的方式进行格式化 -
@noah 我试过这个,我得到了窗口必须是整数的错误。
-
你滚动
on=Date了吗?否则它将尝试将日期时间应用于索引