我正在尝试使用熊猫在df中更改日期格式。我当前的代码如下:
data = pd.read_csv('pub?gid=31644116&single=true&output=csv',
usecols=[0,1,2],
header=0,
encoding="utf-8-sig",
index_col='Day Index')
data['Revenue'] = data['Revenue'].str.replace(',','').str.replace('£','').astype('float')
data['E-commerce Conversion Rate'] = data['E-commerce Conversion Rate'].str.replace('%','').astype('float')
data.apply(pd.to_numeric)
print("we have a total of:", len(data), " samples")
data.head()
并返回此:
we have a total of: 109 samples
Revenue E-commerce Conversion Rate
Day Index
01/05/2020 4396.89 0.99
02/05/2020 7117.02 1.60
03/05/2020 3248.22 1.04
04/05/2020 8843.80 1.93
05/05/2020 5863.42 1.54
我想将日期格式从D / M / Y更新为Y-M-D。当我添加以下行时,出现以下错误:
data['Day Index']=pd.to_datetime(data['Day Index'].astype(str), format='%y-%m-%d')
KeyError: 'Day Index'
During handling of the above exception, another exception occurred:
是因为将“日索引”列设置为index_col造成了问题吗?任何帮助将不胜感激!
答案 0 :(得分:2)
如果需要转换索引值,请使用data.index
并更改匹配日期DD/MM/YYYY
的日期时间格式:
data.index=pd.to_datetime(data.index, format='%d/%m/%Y')
在您的代码中也未将转换后的值分配给数字,请使用:
data = data.apply(pd.to_numeric)
答案 1 :(得分:0)
您可以尝试传递yearfirst参数而不是格式。希望这会有所帮助:
yearfirst=True