原表中Emerging Markets列数据是带百分号的字符串类型,要先进行转换,可用如下方法转换成浮点数:
import pandas as pd
data={'a': [1, 2, 3],'b':['2.3%','-2%',None]}
df=pd.DataFrame(data)
df['b']=df['b'].apply(lambda x:float(x.split('%')[0])/100 if x!=None else 0)
print(df)
如有帮助请点采纳
你可以通过打印 history.info()查看每一列的数据类型,如果用于计算均值的列的数据类型为Object则会导致该错误,因此在计算均值之前应该先对该列进行类型转换,可通过 history=pd.DataFrame(history,dtype=np.float)实现