如何使用Python基于其他列的条件计算并新增rate列?
实现表格新增rate列的Python方案
当然可以用Python搞定这个需求!处理这类结构化表格数据,pandas库是最合适的工具,下面是具体的实现步骤和代码:
步骤说明
我们可以利用pandas的条件判断功能,根据hour和km_length列的有效值情况,分别应用对应的计算公式生成rate列。
完整代码示例
import pandas as pd import numpy as np # 构造初始表格数据,空值用np.nan表示(符合pandas的标准缺失值格式) data = { 'type': ['A', 'B'], 'hour': [1, np.nan], 'km_length': [np.nan, 2], 'total': [1, 1] } df = pd.DataFrame(data) # 计算rate列:优先使用hour列的公式,否则用km_length的公式 df['rate'] = np.where( df['hour'].notna(), (df['hour'] * 100) / df['total'], (df['km_length'] * 1000000) / df['total'] ) # 打印结果 print(df)
运行结果
执行上述代码后,会得到你想要的目标表格:
| type | hour | km_length | total | rate |
|---|---|---|---|---|
| A | 1.0 | NaN | 1 | 100.0 |
| B | NaN | 2.0 | 1 | 2000000.0 |
补充说明
- 如果你的原始数据中空值是用空字符串
''表示的,可以先执行df.replace('', np.nan, inplace=True)转换为标准缺失值,再进行后续计算 np.where()函数是高效的条件分支工具,能批量处理整列数据,比逐行遍历的效率高很多
内容的提问来源于stack exchange,提问作者nomnom3214
相关产品推荐
相关产品推荐

