小编gtr*_*pis的帖子

将数据帧列名从字符串格式更改为datetime

我有一个数据框,其中列的名称是字符串形式的日期(年 - 月).如何以日期时间格式转换这些名称?我试过这样做:

new_cols = pd.to_datetime(df.columns)
df = df[new_cols]
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

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"
Run Code Online (Sandbox Code Playgroud)

谢谢!

python dataframe string-to-datetime pandas

3
推荐指数
1
解决办法
5862
查看次数

DateParseError:未知的日期时间字符串格式,无法解析:ratio

我有一个数据框,其中单元格用浮点数填充,列名称采用日期时间格式,格式为年+季度 - 例如'1995Q2'.我想划分其中两列的值并将结果存储在一个新列中.我这样做了:

df['ratio'] = df['2008Q3'].div(df['2009Q2'])
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

ValueError: Unknown datetime string format, unable to parse: ratio
Run Code Online (Sandbox Code Playgroud)

和

DateParseError: Unknown datetime string format, unable to parse: ratio
Run Code Online (Sandbox Code Playgroud)

当我尝试这个:

ratio_column = df['2008Q3'].div(df['2009Q2'])
df['ratio'] = df.add(ratio_column)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ValueError: can only call with other PeriodIndex-ed objects
Run Code Online (Sandbox Code Playgroud)

有帮助吗?谢谢!


可以使用以下示例重现错误:

import numpy as np
import pandas as pd
columns = pd.period_range('1999-1-1', '2000-1-1', freq='Q')
df = pd.DataFrame(np.random.randint(10, size=(4, len(columns))), columns=columns)
df['ratio'] = df['1999Q1'].div(df['1999Q2'])

ratio_column = df['1999Q1'].div(df['1999Q2'])
df['ratio'] = df.add(ratio_column)
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

2
推荐指数
1
解决办法
2476
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

string-to-datetime ×1