首页 > 解决方案 > 如何在python中将同时具有字符串和int的数据框的列转换为仅int

问题描述

我想将以下数据集的重量列转换为“1.37 kg”形式的条目,它不是一个浮点值到1.37作为我的数据集的浮点值?我正在使用来自 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

标签: pythonpandasdataframeintegerdataset

解决方案


用途replace()astype()方法:

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

或者

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

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

推荐阅读