如何在 python 中将同时具有字符串和 int 的数据帧的列转换为仅 int

How to convert a column of a dataframe that has both string and int to only int in python

我想将以下数据集的重量列转换为 1.37 作为我的数据集的浮点值,该数据集当前具有“1.37 kg”形式的条目(不是浮点值)? 我正在使用 this dataset from Kaggle.

我正在处理的数据样本:

# dftrain.head()
   laptop_ID Company      Product   TypeName  Inches                    ScreenResolution                         Cpu   Ram               Memory                           Gpu  OpSys  Weight  Price_euros
0          1   Apple  MacBook Pro  Ultrabook    13.3  IPS Panel Retina Display 2560x1600        Intel Core i5 2.3GHz   8GB            128GB SSD  Intel Iris Plus Graphics 640  macOS  1.37kg      1339.69
1          2   Apple  Macbook Air  Ultrabook    13.3                            1440x900        Intel Core i5 1.8GHz   8GB  128GB Flash Storage        Intel HD Graphics 6000  macOS  1.34kg       898.94
2          3      HP       250 G6   Notebook    15.6                   Full HD 1920x1080  Intel Core i5 7200U 2.5GHz   8GB            256GB SSD         Intel HD Graphics 620  No OS  1.86kg       575.00
3          4   Apple  MacBook Pro  Ultrabook    15.4  IPS Panel Retina Display 2880x1800        Intel Core i7 2.7GHz  16GB            512GB SSD            AMD Radeon Pro 455  macOS  1.83kg      2537.45
4          5   Apple  MacBook Pro  Ultrabook    13.3  IPS Panel Retina Display 2560x1600        Intel Core i5 3.1GHz   8GB            256GB SSD  Intel Iris Plus Graphics 650  macOS  1.37kg      1803.60

使用replace()astype()方法:

df['weight']=df['weight'].replace('kg','',regex=True).astype(float)

另一种方法是使用字符串切片和 astype() 方法:

df['weight']=df['weight'].str[:-2].astype(float)