首页 > 解决方案 > 如果单位和重量值在不同的列中,则将重量转换为千克单位

问题描述

我有一个大数据集,但是,我确实有两列,一列用于重量,另一列用于重量单位,我确实想对重量列进行一些计算,但首先我想将它们全部转换为千克,所以有人可以关于如何检查单位列的帮助,如果我找到它的克,我将重量列值转换为千克:

这是数据集的样子

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)

我的最终结果是重量列中的所有值都以千克为单位

标签: pythonpandas

解决方案


您可以将所有匹配的值除以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'])

推荐阅读