python - 如何从数字中删除单位并乘以数字
问题描述
我在熊猫数据框中有一列属性的土地面积。土地面积以平方米和公顷为单位。我只想使用平方米作为单位,所以我需要通过将数字乘以 10000 将公顷转换为平方米。原始列如下所示(仅显示前十个):
0 895m2
1 52.9ha
2 1229m2
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 2961m2
9 NaN
10 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
公顷更改为平方米并将整个列同时转换为float
?提前感谢您的帮助!
解决方案
Series.replace
通过值使用多个,删除缺失值和多个字符串eval
:
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
推荐阅读
- memory - 操作系统
- database - 尝试加密我的 Access 数据库时,它会冻结,并在 10 分钟后显示“系统资源超出”
- java - .jar 文件 FileNotFoundException 使用 getClass().getResource()
- ios - Swift 无法将 NSNumber 桥接到 Int
- android - 如何更改 TimePicker 字体颜色
- gmail - 如何从我的主要 gmail 帐户中删除连接的 gmail 帐户
- javascript - 为 JS 文档指定 errorpage.html.getElementById('link_id').value + '.html'; 如果在目录中找不到值?
- php - 如何将多个数组转换为 1 个标准?
- python - 如何在熊猫的groupby中重命名聚合列
- javascript - 由 PHP 生成的可扩展 HTML 表