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

如何在python中将同时具有字符串和int的数据帧的列转换为仅具有int的列,python,pandas,dataframe,integer,dataset,Python,Pandas,Dataframe,Integer,Dataset,我想将下面数据集的权重列转换为1.37作为我的数据集的浮点值,该数据集当前的条目形式为“1.37 kg”,它不是浮点值? 我正在使用 我正在处理的数据示例: # dftrain.head() laptop_ID Company Product TypeName Inches ScreenResolution Cpu Ram Memory

我想将下面数据集的权重列转换为1.37作为我的数据集的浮点值,该数据集当前的条目形式为“1.37 kg”,它不是浮点值? 我正在使用

我正在处理的数据示例:

# 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)
df['weight']=df['weight'].str[:-2].astype(float)

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

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

df['Weight'].str.replace('kg','').astype(float)