首页 > 解决方案 > 将非数字列转换为数字列

问题描述

我的进口是:

import pandas as pd
import numpy as np
from pandas.api.types import is_numeric_dtype

我创建了一个 pandas 数据框(名为 df),如下所示:

   state  initial_temp     final_temp
0   Cold    48.0              88.1
1   hot     80.7              30.0
2   hot    140.2              25.0
3   hot     59.8              25.0
4   hot     80.0              25.0

所有列都有 dtypes 对象,但是,唯一应该具有该 dtype 的列是状态列。我正在尝试将所有实际数字列(初始和最终温度)转换为数字 dtypes 并忽略/省略状态列。这主要是出于教学目的。

我目前的尝试是:

def datatype_converter(df):
    col_list = []
    for column in df.columns:
        col_list.append(column)
        for i in range(len(col_list)):
            if is_numeric_dtype(df[col_list.pop()]):
                df.apply(pd.to_numeric, errors = 'coerce') # coerce invalid values to nan. 
            else:
                pass
    return df

标签: pythonpython-3.xpandasdataframenumpy

解决方案


你可以做

df.transform(pd.to_numeric, errors = 'ignore')

推荐阅读