我正在使用pandas将一个excel读入,除了第一列,所有的列标题都是日期时间格式。我想要格式化这些日期时间列标题。
以下是测试数据和代码。
import pandas as pd
import datetime
d = {
datetime.datetime(2018, 01, 31, 8, 00): [9.1, 8.5, 7.4, 6.5, 5.3],
datetime.datetime(2018, 02, 28, 9, 00): [9.2, 8.5, 7.2, 6.1, 5.2],
datetime.datetime(2018, 03, 31, 10, 00): [9.3, 8.5, 7.1, 6.1, 5.1],
'ID': [1, 2, 3, 4, 5],
}
df = pd.DataFrame(d, columns= ['ID', datetime.datetime(2018, 01, 31, 8, 00), datetime.datetime(2018, 02, 28, 9, 00), datetime.datetime(2018, 03, 31, 10, 00)])
df.loc[:, df.columns != 'ID'].columns = [x.date() for x in df.loc[:, df.columns != 'ID'].columns]
我希望将日期时间标题格式化为仅日期。例如:将
2018-01-31 08:00:00
更新为2018-01-31
。我使用
.date()
函数来实现这一目标,但我认为我的方法是错误的。以下行不会更新日期时间列标题。df.loc[:, df.columns != 'ID'].columns = [x.date() for x in df.loc[:, df.columns != 'ID'].columns]
谢谢。