如果单位和重量值在不同的列中,则将重量转换为千克单位

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


这是数据集的样子


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)

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


蛊毒传说
浏览 87回答 2
2回答

慕森卡

您可以将所有匹配的值除以1000:dfy.loc[dfy['weight_units'].eq('Grams'), 'Weghts'] /= 1000print(dfy)   Weghts weight_units0   2.000    Kilograms1   3.500    kilograms2   2.050        Grams3   4.019        Grams或解决方案numpy.where:dfy['Weghts'] = np.where(dfy['weight_units'].eq('Grams'), dfy['Weghts'] / 1000, dfy['Weghts'])

潇湘沐

一种选择是使用 numpy where 并将值重新分配给 Weghts 列:df.assign(Weghts = lambda x: np.where(x.weight_units=="Grams",x.Weghts * .001,                                        x.Weghts))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python