Python - 使用日期时间将日期字符串从 YYYY-MM-DD 转换为 DD-MMM-YYYY?

Kor*_*zak 1 python datetime date pandas

所以我已经阅读了许多关于此的主题,但仍然被难住了。任何帮助将不胜感激。

我在数据框中有一列包含日期字符串或什么都不包含。字符串采用以下格式:2017-10-17, 即YYYY-MM-DD.

我想将这些转换为DD-MMM-YYYY,因此上面的内容将读取17-Oct-2017.

这是我拥有的代码,它似乎什么也没做。它不会出错,但实际上不会修改日期;它们和以前一样。我一开始就这样称呼:import datetime

df_combined['VisitDate'].apply(lambda x: datetime.datetime.strptime(x, '%Y-%m-%d').strftime('%d-%b-%Y') if x != "" else "")
Run Code Online (Sandbox Code Playgroud)

我希望这会以与从列中读取原始字符串时的格式不同的格式返回一个字符串。

Zac*_*oss 5

您可能只需要将结果分配回列本身:

df_combined['VisitDate'] = df_combined['VisitDate'].apply(lambda x: datetime.datetime.strptime(x, '%Y-%m-%d').strftime('%d-%b-%Y') if x != "" else "")
Run Code Online (Sandbox Code Playgroud)

  • 是的,`.apply` 返回一个 *new* `Series`...但是,`df_combined['VisitDate'] = pd.to_datetime(df_combined.VisitDate).dt.strftime('%d-%B-%Y' )` 在使用熊猫时会更可取。 (3认同)