Python 如何从数字中删除单位并将数字相乘

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

我在熊猫数据框中有一列财产的土地面积。土地面积以平方米和公顷为单位。我只想用平方米作为单位,所以我需要将这个数字乘以10000,将公顷转换为平方米。原始列如下所示(仅显示前十个):

我通过编写以下代码删除了
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