我有一个Pandas Dataframe df
:-
| 识别号|成本|1F|二楼|3F|第四代|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 1个|三六二|无|1个|1个|1个|
| 第二章|二百六十九|无|1个|无|无|
| 三个|三四六|1个|1个|1个|1个|
| 四个|三四二|无|无|无|无|
我有一本total_cost
字典:
总成本={'1F':0.047,“2F”:0.03,“3F”:0.023,“4G”:0.025分
我想添加一个TOTAL_COST
列,这样只要存在1
,该列的COST
*(total_cost字典中的值)就会相乘并相加。
Dataframe 有大约一百万条记录,最有效的方法是什么?预期df
:-
| 识别号|成本|1F|二楼|3F|第四代|总计_成本|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 1个|三六二|无|1个|1个|1个|二十八二百三十六|
| 第二章|二百六十九|无|1个|无|无|八点零七分|
| 三个|三四六|1个|1个|1个|1个|四十三点二五|
| 四个|三四二|无|无|无|无|无|
1条答案
按热度按时间d7v8vwbk1#
使用切片只获取字典中作为键存在的列,然后乘以它,聚合为每行
sum
,multiply
乘以COST:或者,将字典强制转换为Series(不匹配的列将变为NaN):
输出: