【发布时间】:2020-02-25 21:07:35
【问题描述】:
在python3中将MMM yyyy转换为yyyy-mm
所以对于带有 dd mmm yyyy 的 panda 日期框来说
01 Feb 1985
可以用下面的代码转换成yyyy-mm-dd
df[["date"]] = df[["date"]].apply(pd.to_datetime)
输出:
1985-02-01
但如果我有 MMM yyyy 喜欢
Feb 1985
我想输出为
1985-02
我该怎么做?
df[["date"]] = df[["date"]].apply(pd.to_datetime)
会输出我不想要的日期
1985-02-01
有什么想法吗?
感谢一些 cmets。我刚刚意识到数据框中有我不能删除的 NaN。所以我试图做一个函数来引入 NaN,但结果仍然像 1985-02-01。有什么想法吗?
def date2int(df):
for index, row in df.iteritems():
try:
t1=row.strftime('%b-%Y')
return t1
except ValueError:
return None
date2int(df["date2"])
【问题讨论】:
-
这里回答了类似的问题:stackoverflow.com/questions/25146121/…
-
1985-02-01是数据类型 (datetime) 的 pandas__repr__。您可以强制使用不同的格式,例如df['date'].map('{:%Y-%m}'.format) -
我用上面的评论编辑了我的帖子。尝试 1 小时后仍无法解决。 @DOOM:您提供的解决方案会出现错误消息:
AttributeError: 'NaTType' object has no attribute 'map'。 ``` def date2int(df): for index, row in df.iteritems(): print(row) if row is None: return None else: t1=row.map('{:%Y-%m}'.格式)打印(date2int(df[“date2”]))```
标签: python-3.x pandas date datetime