Python 如何将Datetime列标题(例如2007-03-01 00:00:00)转换为日期-月份-年份格式,即2007-03-01

Python 如何将Datetime列标题(例如2007-03-01 00:00:00)转换为日期-月份-年份格式,即2007-03-01,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,如何将日期时间列标题(例如2007-03-01 00:00:00)转换为日期-月份-年份格式,即2007-03-01 我试过了 df=pd.DataFrame({'Company Name':['3M India Ltd.','A B B India Ltd.'],'2007-03-01 00:00:00':[1571.30,710.20],'2007-04-01 00:00:00':[710.20,818.13]}) df.columns=pd.to_datetime.date(df.colu

如何将日期时间列标题(例如2007-03-01 00:00:00)转换为日期-月份-年份格式,即2007-03-01

我试过了

df=pd.DataFrame({'Company Name':['3M India Ltd.','A B B India Ltd.'],'2007-03-01 00:00:00':[1571.30,710.20],'2007-04-01 00:00:00':[710.20,818.13]})
df.columns=pd.to_datetime.date(df.columns) 

但是显示错误属性error:“function”对象没有属性“date”

首先创建
索引
by not datetimes列by,然后使用,如有必要,添加:

另一个解决方案,如果不可行,第一个解决方案是通过
columns
创建
Series
,然后使用
errors='concurve'
调用,以将列中的所有值转换为datetime,对于not dates,则返回
NaT
(datetime缺少值),因此最后添加将非datetime替换为原始列名称:

s = pd.Series(df.columns)
df.columns = pd.to_datetime(s, errors='coerce').dt.date.fillna(s)
print (df)
       Company Name  2007-03-01  2007-04-01
0     3M India Ltd.      1571.3      710.20
1  A B B India Ltd.       710.2      818.13
详细信息

print (pd.to_datetime(s, errors='coerce'))
0          NaT
1   2007-03-01
2   2007-04-01
dtype: datetime64[ns]

@拉胡尔-不客气!如果我的回答有帮助,别忘了。谢谢
print (pd.to_datetime(s, errors='coerce'))
0          NaT
1   2007-03-01
2   2007-04-01
dtype: datetime64[ns]