首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas在将所有日期转换为周的开始日期时出错

Pandas在将所有日期转换为周的开始日期时出错
EN

Stack Overflow用户
提问于 2019-10-22 20:30:20
回答 1查看 238关注 0票数 1

我正在尝试将日期转换为周期间,然后获得期间的第一部分。

代码语言:javascript
复制
df['Date'] = df['Date (mm/dd/yyyy)'].dt.to_period('W').apply(lambda r: r.start_time)

但它给了我一个错误

代码语言:javascript
复制
AttributeError: 'NaTType' object has no attribute 'start_time'

我使用的是pandas 0.25.2版本。

虽然它以前是运行的,但这次没有运行。无法确定发生了什么。请帮助解决此错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-22 20:33:15

使用技巧np.nan != np.nan,这样您就可以添加if-else语句或将Series.to_timestamp与默认how='s'一起使用

代码语言:javascript
复制
rng = pd.date_range('2017-04-03', periods=10)
df = pd.DataFrame({'Date (mm/dd/yyyy)': rng})  
df.loc[0, 'Date (mm/dd/yyyy)'] = np.nan

df['Date'] = (df['Date (mm/dd/yyyy)'].dt.to_period('W')
                                     .apply(lambda r: r.start_time if r == r else np.nan))

df['Date1'] = df['Date (mm/dd/yyyy)'].dt.to_period('W').dt.to_timestamp()

print (df)
  Date (mm/dd/yyyy)       Date      Date1
0               NaT        NaT        NaT
1        2017-04-04 2017-04-03 2017-04-03
2        2017-04-05 2017-04-03 2017-04-03
3        2017-04-06 2017-04-03 2017-04-03
4        2017-04-07 2017-04-03 2017-04-03
5        2017-04-08 2017-04-03 2017-04-03
6        2017-04-09 2017-04-03 2017-04-03
7        2017-04-10 2017-04-10 2017-04-10
8        2017-04-11 2017-04-10 2017-04-10
9        2017-04-12 2017-04-10 2017-04-10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58504341

复制
相关文章

相似问题

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