如何在python中将同时具有字符串和int的数据帧的列转换为仅具有int的列
我想将下面数据集的权重列转换为1.37作为我的数据集的浮点值,该数据集当前的条目形式为“1.37 kg”,它不是浮点值? 我正在使用 我正在处理的数据示例:如何在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
# 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)