我正在尝试将Dtype对象转换为Dtype float64。 转换前,请参阅下面的df和信息:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 101 entries, 2012-01-31 to 2020-05-27
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 MSCI World Index (MXWO) - Index Value 101 non-null object
dtypes: object(1)
然后我应用此行代码将“ MSCI世界索引(MXWO)-索引值”列转换为float64:
MSCI['MSCI World Index (MXWO) - Index Value']=pd.to_numeric(MSCI['MSCI World Index (MXWO) - Index Value'],errors='coerce')
调用df时,会得到以下结果:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 101 entries, 2012-01-31 to 2020-05-27
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 MSCI World Index (MXWO) - Index Value 0 non-null float64
dtypes: float64(1)
为了正确显示值,我应该对代码进行哪些更改,以便我可以使用值执行计算?
答案 0 :(得分:0)
我认为您需要this方法,对于更一般的事情来说非常方便
col_name = 'MSCI World Index (MXWO) - Index Value'
df[col_name].str.replace(',', '.', regex=True).astype(float)
答案 1 :(得分:0)
Pandas使用英文的句点惯例来表示十进制值。用句点替换逗号,然后将列转换为浮点数以解决此问题:
colname = 'MSCI World Index (MXWO) - Index Value' # just to make the line shorter
MSCI[colname] = MSCI[colname].str.replace(',', '.').astype(float)