python – 将数据帧列名从字符串格式更改为datetime
发布时间:2020-12-20 12:11:47 所属栏目:Python 来源:网络整理
导读:我有一个数据框,其中列的名称是字符串形式的日期(年 – 月).如何以日期时间格式转换这些名称? 我试过这样做: new_cols = pd.to_datetime(df.columns)df = df[new_cols] 但我得到错误: KeyError: "DatetimeIndex(['2000-01-01','2000-02-01','2000-03-01',
我有一个数据框,其中列的名称是字符串形式的日期(年 – 月).如何以日期时间格式转换这些名称?
我试过这样做: new_cols = pd.to_datetime(df.columns) df = df[new_cols] 但我得到错误: KeyError: "DatetimeIndex( ['2000-01-01','2000-02-01','2000-03-01','2000-04-01','2000-05-01','2000-06-01','2000-07-01','2000-08-01','2000-09-01','2000-10-01','2015-11-01','2015-12-01','2016-01-01','2016-02-01','2016-03-01','2016-04-01','2016-05-01','2016-06-01','2016-07-01','2016-08-01'],dtype='datetime64[ns]',length=200,freq=None) not in index" 谢谢! 解决方法
如果通过loc列选择值未更改,则获取KeyError.
所以你需要将输出分配给列: df.columns = pd.to_datetime(df.columns) 样品: cols = ['2000-01-01','2000-05-01'] vals = np.arange(5) df = pd.DataFrame(columns = cols,data=[vals]) print (df) 2000-01-01 2000-02-01 2000-03-01 2000-04-01 2000-05-01 0 0 1 2 3 4 print (df.columns) Index(['2000-01-01','2000-05-01'],dtype='object') df.columns = pd.to_datetime(df.columns) print (df.columns) DatetimeIndex(['2000-01-01',freq=None) 也可以转换为期间: print (df.columns) Index(['2000-01-01',dtype='object') df.columns = pd.to_datetime(df.columns).to_period('M') print (df.columns) PeriodIndex(['2000-01','2000-02','2000-03','2000-04','2000-05'],dtype='period[M]',freq='M') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |