如何在 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)
我想将以下数据集的重量列转换为 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)