商业网站的建设,中山工程建设信息网站,seo网址,wordpress 字段插件您可以使用pd.to_numeric(在版本0.17中引入)将列或Series转换为数字类型。该函数还可以使用apply应用于DataFrame的多个列。重要的是#xff0c;该函数还接受一个错误关键字参数#xff0c;它允许您强制非数字值为NaN#xff0c;或者简单地忽略包含这些值的列。示例使用如下…您可以使用pd.to_numeric(在版本0.17中引入)将列或Series转换为数字类型。该函数还可以使用apply应用于DataFrame的多个列。重要的是该函数还接受一个错误关键字参数它允许您强制非数字值为NaN或者简单地忽略包含这些值的列。示例使用如下所示。单列/系列这里有一个使用一系列字符串的例子它有一个对象dtype s pd.Series([1, 2, 4.7, pandas, 10]) s0 11 22 4.73 pandas4 10dtype: object该函数的默认行为是如果它不能转换一个值。在这种情况下它不能处理字符串’熊猫’ pd.to_numeric(s) # or pd.to_numeric(s, errorsraise)ValueError: Unable to parse string而不是失败我们可能想要“熊猫”被认为是一个缺失/坏值。我们可以强制无效值到NaN如下所示 pd.to_numeric(s, errorscoerce)0 1.01 2.02 4.73 NaN4 10.0dtype: float64第三个选项只是在遇到无效值时忽略操作 pd.to_numeric(s, errorsignore)# the original Series is returned untouched多列/整个DataFrames我们可能希望将此操作应用于多个列。依次处理每一列是乏味的所以我们可以使用DataFrame.apply使该函数对每一列起作用。借用DataFrame的问题 a [[a, 1.2, 4.2], [b, 70, 0.03], [x, 5, 0]] df pd.DataFrame(a, columns[col1,col2,col3]) dfcol1 col2 col30 a 1.2 4.21 b 70 0.032 x 5 0然后我们可以写df[[col2,col3]] df[[col2,col3]].apply(pd.to_numeric)现在“col2”和“col3”根据需要具有dtype float64。但是我们可能不知道哪些列可以可靠地转换为数字类型。在这种情况下我们可以写df.apply(lambda x: pd.to_numeric(x, errorsignore))然后该函数将应用于整个DataFrame。可以转换为数字类型的列将被转换而不能(例如它们包含非数字字符串或日期)的列将被单独保留。还有用于转换为日期和时间戳的pd.to_datetime和pd.to_timedelta。