基于DataFrame列值生成带乘数的新列(自定义函数实现)
为DataFrame生成自定义计算的新列
实现思路
用自定义函数+字典映射的方式,既能满足当前的乘法需求,后续改乘数、换计算逻辑也能快速调整。
完整代码
import pandas as pd import random # 生成测试数据 df = pd.DataFrame() countries= ['US','DE','UK'] df['country'] = random.choices(countries,k=100) df['time'] = random.choices(range(20,100),k=100) # 1. 定义国家-乘数映射字典,后续改乘数直接修改这里 country_multipliers = { 'US': 2, 'UK': 1.5, 'DE': 1 } # 2. 自定义计算函数,要改计算逻辑只动这个函数里的代码 def calculate_expected_time(row): multiplier = country_multipliers[row['country']] # 当前是乘法,后续要换加减、取模等运算,直接修改这行的表达式即可 return row['time'] * multiplier # 3. 生成目标新列 df['expected workout time'] = df.apply(calculate_expected_time, axis=1)
灵活调整说明
- 修改乘数:直接编辑
country_multipliers字典的键值对,比如把US的乘数改成2.5,只需将'US': 2改为'US': 2.5 - 更换计算逻辑:比如要改成
time + 乘数,就把函数里的return row['time'] * multiplier替换为return row['time'] + multiplier;要做取模运算就改成return row['time'] % multiplier,其余代码无需改动
内容的提问来源于stack exchange,提问作者clause_yl
相关产品推荐
相关产品推荐

