我正在尝试将大型数据集及其处理从 Excel 转换为 Python/Pandas,并且在尝试实现“IF(col A = x, VLOOKUP(col B in table Y),否则为 VLOOKUP(表 Z 中的列 A))”。
我创建了两个单独的字典,它们将用作表 Y 和 Z 的 Pandas 版本,但我一直无法找到可以告诉 Pandas 使用 B 列中的值在字典中查找的构造。
用熊猫尝试这个:
# Created a function to map the values from
# PROD_TYPE to the prod_dict.
def map_values(row, prod_dict):
return prod_dict[row]
# Created the dictionaries / old VLOOKUP tables.
prod_dict = {'PK': 'Packaging',
'ML': 'Mix',
'CM': 'Textile',
'NK': 'Metallic'}
pack_dict = {'PK3' : 'Misc Packaging',
'PK4' : 'Mix Packaging',
'PK9' : 'Textile Packaging'}
df = pd.DataFrame({'PROD_TYPE' : ['PK', 'ML', 'ML', 'CM'],
'PKG_TYPE': ['PK3', 'PK4', 'PK4', 'PK9'],
'VALUE': [1000, 900, 800, 700]})
# Apply the map_values function.
df['ITEM'] = df['PROD_TYPE'].apply(map_values, args = (prod_dict,))
我得到:
PROD_TYPE PKG_TYPE VALUE ITEM
0 PK PK3 1000 Packaging
1 ML PK4 900 Mix
2 ML PK4 800 Mix
3 CM PK9 700 Textile
当我正在寻找的是:
PROD_TYPE PKG_TYPE VALUE ITEM
0 PK PK3 1000 Misc Packaging
1 ML PK4 900 Mix
2 ML PK4 800 Mix
3 CM PK9 700 Textile
或者,更简单地说:如果PROD_TYPE是'PK',则从; 中的列PKG_TYPE中查找值pack_dict。否则,PROD_TYPE在prod_dict.
任何帮助,将不胜感激!
慕无忌1623718
烙印99
吃鸡游戏
相关分类