我有一个大数据集,但是,我确实有两列,一列用于重量,另一列用于重量单位,我确实想对重量列进行一些计算,但首先我想将它们全部转换为千克,所以有人可以关于如何检查单位列的帮助,如果我找到它的克,我将重量列值转换为千克:这是数据集的样子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)我的最终结果是重量列中的所有值都以千克为单位
2 回答
慕森卡
TA贡献1806条经验 获得超8个赞
您可以将所有匹配的值除以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'])
潇湘沐
TA贡献1816条经验 获得超6个赞
一种选择是使用 numpy where 并将值重新分配给 Weghts 列:
df.assign(Weghts = lambda x: np.where(x.weight_units=="Grams",x.Weghts * .001, x.Weghts))
添加回答
举报
0/150
提交
取消