首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从日期时间数组生成月的第一天的Python熊猫

从日期时间数组生成月的第一天的Python熊猫
EN

Stack Overflow用户
提问于 2016-07-17 12:55:55
回答 3查看 2.8K关注 0票数 2

我正在尝试从日期时间数组中获取月份的第一天,即将所有日期更改为1,将所有小时更改为0

代码语言:javascript
复制
import pandas as pd
z1 = [datetime(2025, 10, 1, 3, 0),datetime(2025, 1, 6, 7, 0)]
pd.DatetimeIndex(z1).normalize()
DatetimeIndex(['2025-10-01', '2025-01-06'], dtype='datetime64[ns]', freq=None)

我希望能实现

代码语言:javascript
复制
DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-17 13:03:20

您可以首先从z1创建z1,然后将replace day转换为date

代码语言:javascript
复制
print (pd.DatetimeIndex(pd.Series(z1).apply(lambda x: x.replace(day=1)).dt.date))
DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)

另一个解决方案是转换dayhour

代码语言:javascript
复制
print (pd.DatetimeIndex(pd.Series(z1).map(lambda x: x.replace(day=1, hour=0))))
DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
票数 2
EN

Stack Overflow用户

发布于 2016-07-17 13:16:39

另一种方法是形成一个dtype datetime64[M] (具有每月分辨率的datetime64 )的datetime64数组。

代码语言:javascript
复制
In [31]: np.array(z1, dtype='datetime64[M]')
Out[31]: array(['2025-10', '2025-01'], dtype='datetime64[M]')

将其传递给pd.DatetimeIndex返回

代码语言:javascript
复制
In [32]: pd.DatetimeIndex(np.array(z1, dtype='datetime64[M]'))
Out[32]: DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
票数 4
EN

Stack Overflow用户

发布于 2020-03-20 03:38:39

使用date_range并设置freq = 'MS''MS'的含义可以从下面解释

一行代码:

date_series = pd.date_range(start='1/1/2017', end ='12/1/2019', freq='MS')

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38421454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档