将非数字列转换为数字列。

15 浏览
0 Comments

将非数字列转换为数字列。

这个问题已经在这里找到了答案:

在pandas中更改列类型

我的导入是:

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

我创建了一个名为df的pandas数据框,它看起来像这样:

   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

所有列的dtype都是对象,但是唯一应该具有该dtype的列是state列。我尝试将所有实际数值列(初始温度和最终温度)转换为数值类型,并忽略/留出state列。这主要是出于教育目的。

我目前尝试的是:

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

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以像这样在相应的列上使用 astype

df[["initial_temp", "final_temp"]] = df[["initial_temp", "final_temp"]].astype(float)

其中的 df 是您的数据框。当然,这个假设所有这些列中的值都是数值型的。

0
0 Comments

你可以这样做

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

0