gpt4 book ai didi

Python日期时间过程

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:28 25 4
gpt4 key购买 nike

我正在使用 Pandas 来处理我的数据,我的数据如下所示:

>>> df = pandas.read_sql('select * from my_table', conn)
>>> df

time_list open close mkt_cap
0 2007-01-04 4.261631 4.104547 2.745555e+10
1 2007-01-05 4.052185 3.799105 2.541244e+10
2 2007-01-08 3.796196 3.889283 2.601564e+10
3 2007-01-09 3.895101 4.014369 2.685235e+10
4 2007-01-10 4.011460 4.095820 2.739718e+10
5 2007-01-11 4.124909 4.299447 2.875925e+10
6 2007-01-12 4.395443 4.514710 3.019916e+10
7 2007-01-15 4.508892 4.741609 3.171690e+10
8 2007-01-16 4.799789 4.951055 3.311789e+10
9 2007-01-17 4.945237 4.951055 3.311789e+10
10 2007-01-18 4.930692 4.706702 3.148340e+10
11 2007-01-19 4.712520 4.930692 3.298169e+10
12 2007-01-22 4.977235 5.166318 3.455780e+10
13 2007-01-23 5.090685 5.265223 3.521938e+10
14 2007-01-24 5.236133 5.151773 3.446051e+10
15 2007-01-25 5.177954 5.061595 3.385731e+10
16 2007-01-26 5.294312 5.314675 3.555017e+10
17 2007-01-29 5.497940 5.579391 3.732087e+10
18 2007-01-30 5.855742 5.858651 3.918886e+10
19 2007-01-31 6.103004 5.564846 3.722358e+10
20 2007-02-01 5.399035 5.369945 3.591988e+10
21 2007-02-02 5.288494 5.102321 3.412972e+10
22 2007-02-05 5.032506 4.855059 3.247577e+10
23 2007-02-06 4.855059 5.096503 3.409080e+10
24 2007-02-07 5.352492 5.352492 3.580313e+10
25 2007-02-08 5.352492 5.556119 3.716520e+10
26 2007-02-09 5.576482 5.349583 3.578367e+10
27 2007-02-12 5.340856 5.617207 3.757383e+10
28 2007-02-13 5.817926 5.719021 3.825486e+10
29 2007-02-14 5.783018 5.977919 3.998665e+10
.. ... ... ... ...
87 2007-05-21 8.101461 8.101461 5.419115e+10
88 2007-05-22 8.101461 8.101461 5.419115e+10
89 2007-05-23 8.101461 8.101461 5.419115e+10
90 2007-05-24 8.101461 8.101461 5.419115e+10
91 2007-05-25 8.505807 8.505807 5.689584e+10
92 2007-05-28 8.866519 8.319634 5.565051e+10
93 2007-05-29 8.430174 8.366177 5.596185e+10
94 2007-05-30 7.947286 7.947286 5.315986e+10
95 2007-05-31 7.857109 8.345814 5.582564e+10
96 2007-06-01 8.345814 8.345814 5.582564e+10
97 2007-06-04 8.345814 8.345814 5.582564e+10
98 2007-06-05 8.345814 8.345814 5.582564e+10
99 2007-06-06 8.345814 8.345814 5.582564e+10
100 2007-06-07 8.345814 8.345814 5.582564e+10
101 2007-06-08 8.345814 8.345814 5.582564e+10
102 2007-06-11 8.345814 8.345814 5.582564e+10
103 2007-06-12 8.345814 8.345814 5.582564e+10
104 2007-06-13 8.345814 8.345814 5.582564e+10
105 2007-06-14 8.345814 8.345814 5.582564e+10
106 2007-06-15 8.345814 8.345814 5.582564e+10
107 2007-06-18 8.345814 8.345814 5.582564e+10
108 2007-06-19 8.345814 8.345814 5.582564e+10
109 2007-06-20 10.562415 9.983083 6.508599e+10
110 2007-06-21 10.383174 10.981711 7.159668e+10
111 2007-06-22 11.394605 11.330591 7.387125e+10
112 2007-06-25 11.525835 11.266576 7.345389e+10
113 2007-06-26 11.266576 11.266576 7.345389e+10
114 2007-06-27 10.139918 10.312758 6.723535e+10
115 2007-06-28 10.082305 9.647006 6.289490e+10
116 2007-06-29 9.538181 8.808414 5.742759e+10

对于 close 列,我想获取每个月的 first daylast day 的值,以及 first day 不是数据框上的 Jan 1st,对于 Jan,它是 2007-01-04,并且 last day 不是日历上的那一天,而是数据框上的那一天。对于 March,第一天可能是 0302,最后一天可能是 0328

这对我来说真的很难,因为 first daylast day 很难得到,因为你不能从日历中得到它们,而且我是 Pandas,所以,我只需要你的帮助。您可以发布您的代码或只是写下您对如何解决它的想法。

最佳答案

groupby 是您的解决方案。让我们从您的日期创建一个仅包含月份信息的向量,然后使用 groupby。顾名思义,您将获得一组同一月份的数据。最后,您通过选择组中的第一个或最后一个进行聚合。

key = [x.strftime("%Y%m") for x in df["time_list"]]
open_month = df.groupby(key, as_index=False).first()
close_month = df.groupby(key, as_index=False).last()

关于Python日期时间过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647033/

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