gpt4 book ai didi

python - 在 pandas 中存在 NaN 的情况下从日期时间列中提取四分之一

转载 作者:行者123 更新时间:2023-12-01 00:24:50 25 4
gpt4 key购买 nike

我需要从 pandas 数据时间列中提取季度作为 Q1 Q2 Q3 Q4。示例代码如下:

dfm = pd.DataFrame({'Date': [None, '2018/02/03', '2019/09/30', '2017/05/12']})
dfm.Date = pd.to_datetime(dfm.Date, format='%Y/%m/%d')
dfm['Quarter'] = dfm.Date.dt.quarter
dfm['Quarter'] = dfm.Quarter.apply(lambda x: 'Q'+ str(x))

我得到的是Q1.0 Q2.0 Q3.0 Q4.0。问题来自于dfm['Quarter'] = dfm.Date.dt.quarter。在存在 NaT 的情况下,我得到的是 float ,而不是整数。

有人知道我该如何解决这个问题吗?预先非常感谢。

最佳答案

使用 dt.to_periodstrftime 来获取正确的格式:

dfm['Quarter'] = dfm['Date'].dt.to_period('Q').dt.strftime('Q%q')

Date Quarter
0 NaT NaT
1 2018-02-03 Q1
2 2019-09-30 Q3
3 2017-05-12 Q2
<小时/>

或者使用 str.extract,但 NaT get 转换为 NaN:

dfm['Quarter'] = dfm['Date'].dt.to_period('Q').astype(str).str.extract('(Q\d)')

Date Quarter
0 NaT NaN
1 2018-02-03 Q1
2 2019-09-30 Q3
3 2017-05-12 Q2

关于python - 在 pandas 中存在 NaN 的情况下从日期时间列中提取四分之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58668005/

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