重新格式化pandas中的datetime列

时间:2018-05-10 09:54:41

标签: python pandas datetime dataframe

我有一个Pandas数据帧df,其中包含日期时间及其各自的值。现在我想对数据框中的每个日期时间进行一些格式更改,但是注意到正常的for循环并没有实际更改数据框中的任何内容。

这就是我尝试过的,也展示了我尝试做的事情:

#original format of the datetimes: sunnuntai 1.1.2017 00:00

for i in df["Datetime"]:

#removes the string containing the weekday from the beginning
    i = re.sub("^[^ ]* ","", i) 

#converts 1.1.2017 00:00 into 2017-01-01 00:00
    i = datetime.datetime.strptime(i, "%d.%m.%Y %H:%M").strftime("%Y-%m-%d %H:%M")

我应该如何永久地进行这些格式更改?谢谢。

1 个答案:

答案 0 :(得分:2)

抛弃循环,目标是矢量化。我打破了步骤 -

  1. 使用pd.to_datetime删除主要文字,
  2. dayfirst=True dt.strftime用于日期时间转换,
  3. df['Datetime'] = pd.to_datetime( df['Datetime'].str.split(n=1).str[1], dayfirst=True ).dt.strftime("%Y-%m-%d %H:%M") 将结果转换为您的格式
  4. let signingAlert = SigningAlert()
    signingAlert.modalPresentationStyle = .custom
    present(signingAlert,animated: true,completion: nil)