python - 如果单位和重量值在不同的列中,则将重量转换为千克单位
问题描述
我有一个大数据集,但是,我确实有两列,一列用于重量,另一列用于重量单位,我确实想对重量列进行一些计算,但首先我想将它们全部转换为千克,所以有人可以关于如何检查单位列的帮助,如果我找到它的克,我将重量列值转换为千克:
这是数据集的样子
import pandas as pd
# intialise data of lists.
data = {'Weghts':[2.00, 3.50, 2050.00, 4019.00],'weight_units':['Kilograms', 'kilograms', 'Grams', 'Grams']}
# Create DataFrame
dfy = pd.DataFrame(data)
# Print the output.
print(dfy)
我的最终结果是重量列中的所有值都以千克为单位
解决方案
您可以将所有匹配的值除以1000
:
dfy.loc[dfy['weight_units'].eq('Grams'), 'Weghts'] /= 1000
print(dfy)
Weghts weight_units
0 2.000 Kilograms
1 3.500 kilograms
2 2.050 Grams
3 4.019 Grams
或解决方案numpy.where
:
dfy['Weghts'] = np.where(dfy['weight_units'].eq('Grams'), dfy['Weghts'] / 1000, dfy['Weghts'])
推荐阅读
- cefsharp - CefSharp WPF 升级后不加载内容
- javascript - 如何在扩展器中访问查看模式
- python - flow_from_directory 是如何实现的?
- json - 空手道在状态为 201 的 POST 请求后不显示响应
- python - 有没有办法在类之外自初始化一个函数?
- airflow - 如何在 Airflow 的函数中使用宏
- php - 尝试使用 attach() 填充中间表,但得到“调用未定义的方法 Illuminate\Database\Eloquent\Relations\HasMany::attach()”
- java - 使用 mybatis 时所有测试都失败时是否可以跳过更新
? - c# - 通过 SqlParameter 发送到 SqlDataAdapter 的 Unicode 数据不返回结果
- c - 执行期间的意外程序行为