如何根据字符串的长度更改日期?

马太
df = pd.DataFrame({'text':['20201010', '200910', '2015','20']})
df['date'] = np.where(df.date.str.len() == 8, #format = '%Y%m%d',
                      np.where(df.date.str.len() == 6, #format = '%y%m%d'
                               np.where(df.date.str.len() == 4, #format = '%Y',None

我不知道如何编写代码。我要这样

 df['text']                df['date']

20201010        =>     2020-10-10 00:00:00
200910          =>     2020-09-10 00:00:00
2015            =>     2015-01-01 00:00:00
20              =>     None
耶斯列尔

我认为这不是必要的测试长度,errors='coerce'如果失败,您可以使用缺少的值来测试格式,最后通过Series.fillna组合格式Series.combine_first

f1 = pd.to_datetime(df['text'], format = '%Y%m%d', errors='coerce')                     
f2 = pd.to_datetime(df['text'], format = '%y%m%d', errors='coerce')
f3 = pd.to_datetime(df['text'], format = '%Y', errors='coerce')

df['date'] = f1.fillna(f2).fillna(f3)
#alternative
#df['date'] = f1.combine_first(f2).combine_first(f3)
print (df)
       text       date
0  20201010 2020-10-10
1    200910 2020-09-10
2      2015 2020-01-05
3        20        NaT

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改日期字符串中的日期?

来自分类Dev

如何仅更改日期字符串中的年份?

来自分类Dev

更改日期字符串格式

来自分类Dev

更改日期/时间字符串格式javascript

来自分类Dev

如何根据字符串长度打印?

来自分类Dev

如何在C#中从文本(Json字符串)更改日期格式(或如何从长字符串获取日期值)

来自分类Dev

如何根据时间更改日期?

来自分类Dev

根据字符串长度更改样式

来自分类Dev

如何根据字符截断各种长度的字符串?

来自分类Dev

如何根据输入的长度打印字符串?

来自分类Dev

如何根据字符串的长度用“ *”(astrik)字母替换字符串

来自分类Dev

根据字符串的长度追加

来自分类Dev

根据字符串长度进行匹配

来自分类Dev

根据长度分割字符串

来自分类Dev

根据所需长度分割字符串

来自分类Dev

根据长度连接unicode字符串

来自分类Dev

根据字符串长度使用 like

来自分类Dev

根据子字符串长度替换字符串

来自分类Dev

如何根据用户选择更改日期格式?

来自分类Dev

如何根据用户选择更改日期格式?

来自分类Dev

如何根据下拉列表动态更改日期字段

来自分类Dev

如何根据字符串格式的日期对ArrayList进行排序?

来自分类Dev

文件的上次修改日期为字符串C ++

来自分类Dev

用javascript修改日期字符串

来自分类Dev

如何根据long的大小更改sprintf格式字符串

来自分类Dev

如何根据某些规则更改字符串?

来自分类Dev

导航栏列表项根据列表字符串长度更改大小

来自分类Dev

如何在R中将日期更改为字符串?

来自分类Dev

如何更改日期语言?