"DateParseError: Unknown datetime string format, unable to parse: ..."使用熊猫



我在Python中的代码遇到了一些问题,以下是测试代码:

import pandas as pd
dict={'Country':['USA','China','Canada'],'Capitol':['Washington DC','Beijing','Ottawa'],'2015-01':[10,20,30],'2015-02':[15,25,35],'2015-03':[20,30,40],'2015-04':[10,20,30],'2015-05':[40,50,60],'2015-06':[20,30,40]}
sample = pd.DataFrame(dict)
sample.set_index(['Country','Capitol'],inplace=True)

现在,执行分组依据操作:

samplegrouped=sample.groupby(pd.PeriodIndex(sample.columns,freq='Q'),axis=1).mean()
samplegrouped['ratio'] = samplegrouped['2015Q1']/samplegrouped['2015Q2']

我收到此错误:

DateParseError: Unknown datetime string format, unable to parse: ratio

如果我只是跑

samplegrouped['2015Q1']/samplegrouped['2015Q2']

我得到了正确的结果。问题是什么,我该如何解决这个问题?

这与您在PeriodIndex上分组的事实有关。这意味着,要添加的其他列必须具有有效日期格式的名称。此错误表明:

DateParseError: Unknown datetime string format, unable to parse: ratio

由于'ratio'不是有效的日期时间格式,因此会引发错误。

因此,完成分组后,如果您并不真正关心维护PeriodIndex,请将列转换为字符串 -

samplegrouped.columns = samplegrouped.columns.values.astype(str)

现在,您的操作应该可以正常工作 -

samplegrouped['ratio'] = samplegrouped['2015Q1'] / samplegrouped['2015Q2']    
samplegrouped
                       2015Q1     2015Q2     ratio
Country Capitol                                   
USA     Washington DC    15.0  23.333333  0.642857
China   Beijing          25.0  33.333333  0.750000
Canada  Ottawa           35.0  43.333333  0.807692

相关内容

  • 没有找到相关文章

最新更新