【发布时间】:2019-09-24 20:19:18
【问题描述】:
我正在创建一个适用于多个数据集的代码。有些数据集给我年份,有些给我月-日-年。我已经有代码可以将月份和日期提取到几年,但我需要编写一些东西,如果它已经是 YYYY 格式,那么它会留下几年。
if df['year'] **contains four digits YYYY:
df['year']=df['year']
else:
df['year'] = df['monthdayyear'].astype(str).str[:10]
最后,我希望只剩下 YYYY 格式的年份
【问题讨论】:
-
你能提供两个输入和不同输出的例子吗?
-
使用正则表达式?
-
或者只获取长度 -- 如果是 4 个字符,那么它就是年份。
-
df['year'] = np.where(condition, df['year'], df['monthdayyear'].astype(str).str[:10]`.
-
如果 DF 是内部一致的,那么您只需要在第一行使用
try/except来确定格式,然后再应用于 DF 的其余部分。你显然也可以使用infer_datetime_format