如何使用多個條件來更正資料框中的值
我想改變
- 蘋果=水果
- 馬鈴薯=蔬菜
我的資料框是這樣的
Item Category
Apple Freshco
Potato Sobeys
Orange Fruit
Banana Fruit
我想改變這兩個類別所以資料框是這樣的
Item Categroy
Apple Fruit
Potato Veg
Orange Fruit
Banana Fruit
uj5u.com熱心網友回復:
使用.loc:
df.loc[df['Item'] == 'Apple', 'Category'] = 'Fruit'
df.loc[df['Item'] == 'Potato', 'Category'] = 'Veg'
輸出:
>>> df
Item Category
0 Apple Fruit
1 Potato Veg
2 Orange Fruit
3 Banana Fruit
更動態的版本:
reps = {
'Apple': 'Fruit',
'Potato': 'Veg',
}
df.loc[df['Item'].isin(reps), 'Category'] = df['Item'].replace(reps)
uj5u.com熱心網友回復:
或使用numpy.select:
np.select([df['Item'] == 'Apple', df['Item'] == 'Potato'], ['Fruit', 'Veg'], df['Category'])
或者,使用字典:
mapping = {
'Apple': 'Fruit',
'Potato': 'Veg',
}
df['Category'] = np.select([df['Item'] == k for k in mapping.keys()], [v for v in mapping.values()], df['Category'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449882.html
