gpt4 book ai didi

python - 如何获取日期列表中一个月的最后一天

转载 作者:太空狗 更新时间:2023-10-30 02:53:07 26 4
gpt4 key购买 nike

我为我的问题找到了不同的解决方案,但我找到了正确的答案。所以现在我不得不问:

我想在列表中找到一个月的最后一天......每次我收到以下错误:

AttributeError: 'RangeIndex' object has no attribute 'month'

我是这样开始的:

temp=pandas.read_csv(filename, delimiter=',')
dates=pandas.to_datetime(temp['Var1'])

我得到一个这样的列表:

0      2017-01-01 06:00:00
1 2017-01-01 07:00:00
2 2017-01-01 08:00:00
...
Name: Var1, Length: 4053, dtype: datetime64[ns]

在列表中错过了不同的日子,例如某些月份可能只有 10 天。

我使用了下面的代码

dates[dates.groupby(dates.index.month).apply(lambda s: np.max(s.index))].tolist()

最佳答案

在其他解决方案仅使用 .month 值的情况下,您可能会错过不同年份的差异。跨 .year.month 分组可以避免这种情况。我不确定这是否是您所需要的

df = pd.DataFrame(dict(dates=pd.date_range(start=pd.datetime(2017, 10, 1), periods=20, freq='3W')))
Out[]:
dates
0 2017-10-01
1 2017-10-22
2 2017-11-12
3 2017-12-03
4 2017-12-24
5 2018-01-14
6 2018-02-04
7 2018-02-25
8 2018-03-18
9 2018-04-08
10 2018-04-29
11 2018-05-20
12 2018-06-10
13 2018-07-01
14 2018-07-22
15 2018-08-12
16 2018-09-02
17 2018-09-23
18 2018-10-14
19 2018-11-04


df.groupby([df.dates.dt.year, df.dates.dt.month]).max()
Out[]:
dates
dates dates
2017 10 2017-10-22
11 2017-11-12
12 2017-12-24
2018 1 2018-01-14
2 2018-02-25
3 2018-03-18
4 2018-04-29
5 2018-05-20
6 2018-06-10
7 2018-07-22
8 2018-08-12
9 2018-09-23
10 2018-10-14
11 2018-11-04

df.groupby([df.dates.dt.year, df.dates.dt.month]).max().values
Out[]:
array([['2017-10-22T00:00:00.000000000'],
['2017-11-12T00:00:00.000000000'],
['2017-12-24T00:00:00.000000000'],
['2018-01-14T00:00:00.000000000'],
['2018-02-25T00:00:00.000000000'],
['2018-03-18T00:00:00.000000000'],
['2018-04-29T00:00:00.000000000'],
['2018-05-20T00:00:00.000000000'],
['2018-06-10T00:00:00.000000000'],
['2018-07-22T00:00:00.000000000'],
['2018-08-12T00:00:00.000000000'],
['2018-09-23T00:00:00.000000000'],
['2018-10-14T00:00:00.000000000'],
['2018-11-04T00:00:00.000000000']], dtype='datetime64[ns]')

关于python - 如何获取日期列表中一个月的最后一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50906899/

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