我有一個大數據集,但是,我確實有兩列,一列用于重量,另一列用于重量單位,我確實想對重量列進行一些計算,但首先我想將它們全部轉換為千克,所以有人可以關于如何檢查單位列的幫助,如果我找到它的克,我將重量列值轉換為千克:這是數據集的樣子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
提交
取消