如何格式化熊猫中的日期时间字段

Slartibartfast

我有以下数据框:

xl_file
Out[2]: 
                  Day                     Description
Date                                                 
2011-01-26  Wednesday                    Republic Day
2011-03-02  Wednesday                   Mahashivratri
2011-04-12    Tuesday                       Ram Navmi
2011-04-14   Thursday  Dr. Babasaheb Ambedkar Jayanti
2011-04-22     Friday                     Good Friday
              ...                             ...
2020-05-25     Monday          Id-Ul-Fitr (Ramzan ID)
2020-10-02     Friday          Mahatma Gandhi Jayanti
2020-11-16     Monday            Diwali-Balipratipada
2020-11-30     Monday               Gurunanak Jayanti
2020-12-25     Friday                       Christmas

[144 rows x 2 columns]

要将Day转换datetime字段,我使用了以下代码:

xl_file['Day'] = pd.to_datetime(xl_file['Day'], format = '%A')

我在指定格式的地方却得到了这个:

xl_file
Out[4]: 
                  Day                     Description
Date                                                 
2011-01-26 1900-01-01                    Republic Day
2011-03-02 1900-01-01                   Mahashivratri
2011-04-12 1900-01-01                       Ram Navmi
2011-04-14 1900-01-01  Dr. Babasaheb Ambedkar Jayanti
2011-04-22 1900-01-01                     Good Friday
              ...                             ...
2020-05-25 1900-01-01          Id-Ul-Fitr (Ramzan ID)
2020-10-02 1900-01-01          Mahatma Gandhi Jayanti
2020-11-16 1900-01-01            Diwali-Balipratipada
2020-11-30 1900-01-01               Gurunanak Jayanti
2020-12-25 1900-01-01                       Christmas

[144 rows x 2 columns]

如何更改格式,以便datetime字段显示日期名称。

我尝试了这个:

xl_file['Day'].date.dayofweek

但这给出了一个错误:AttributeError: 'Series' object has no attribute 'date'

用完

您正在尝试使用字符串文本更新日期吗?日期在索引中。我不确定日期时间中是否有该字符串,但让我们假设它只是一个字符串。将索引转换为日期时间(时间戳)。

df.index = pd.to_datetime(df.index)
print(df)
                  Day
Date                 
2011-01-26  Wednesday
2011-03-02  Wednesday
2011-04-12    Tuesday
2011-04-14   Thursday
2011-04-22     Friday
2020-05-25     Monday
2020-10-02     Friday
2020-11-16     Monday
2020-11-30     Monday
2020-12-25     Friday

但是“天”列仍然只是一个字符串。我们可以使用day_name()从日期中获取日期名称并将其设置为一列。

df["Day_Name"] = df.index.day_name()
print(df)
                  Day   Day_Name
Date                            
2011-01-26  Wednesday  Wednesday
2011-03-02  Wednesday  Wednesday
2011-04-12    Tuesday    Tuesday
2011-04-14   Thursday   Thursday
2011-04-22     Friday     Friday
2020-05-25     Monday     Monday
2020-10-02     Friday     Friday
2020-11-16     Monday     Monday
2020-11-30     Monday     Monday
2020-12-25     Friday     Friday

如果您希望索引具有日期。

df.index = df.index.day_name()

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章