Python 如何从数字中删除单位并将数字相乘
我在熊猫数据框中有一列财产的土地面积。土地面积以平方米和公顷为单位。我只想用平方米作为单位,所以我需要将这个数字乘以10000,将公顷转换为平方米。原始列如下所示(仅显示前十个): 我通过编写以下代码删除了Python 如何从数字中删除单位并将数字相乘,python,pandas,string,dataframe,Python,Pandas,String,Dataframe,我在熊猫数据框中有一列财产的土地面积。土地面积以平方米和公顷为单位。我只想用平方米作为单位,所以我需要将这个数字乘以10000,将公顷转换为平方米。原始列如下所示(仅显示前十个): 我通过编写以下代码删除了ha:df['Land area(m2)].str.replace('ha',''),我得到了: 0 895m2 1 52.9 2 1229m2 3 NaN 4 NaN 5 NaN 6 NaN
ha
:df['Land area(m2)].str.replace('ha','')
,我得到了:
0 895m2
1 52.9
2 1229m2
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 2961m2
9 NaN
10 NaN
所以现在我的问题是如何移除m2
并在需要时将单位从公顷更改为平方米并同时将整个柱转换为浮动?提前感谢您的帮助 按值使用多个,通过以下方式删除缺少的值和多个字符串:
非常感谢。但是我想知道dropna()
在这里的作用是什么?@Ilovenoodles-它删除了缺失的值,以避免pd.eval
中出现错误。非常感谢!
0 895m2
1 52.9
2 1229m2
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 2961m2
9 NaN
10 NaN
df['Land area (m2)'] = (df['Land area (m2)'].replace({'ha':'*10000','m2':'*1'}, regex=True)
.dropna()
.apply(pd.eval))
print (df)
Land area (m2)
0 895.0
1 529000.0
2 1229.0
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 2961.0
9 NaN
10 NaN