如何在Pandas DataFrame中计算深度列的厚度差值?
计算深度厚度差值的实现方案
直接通过Pandas对Depth [ft]列做字符串分割和数值计算即可解决问题,具体步骤如下:
1. 分割深度区间为起始/结束数值
利用str.split方法将格式为X-Y的深度字符串分割成两列,并转为整数类型:
df[['Start Depth', 'End Depth']] = df['Depth [ft]'].str.split('-', expand=True).astype(int)
2. 计算厚度差值
按照你示例中的逻辑(起始深度 - 结束深度)新增结果列:
df['Thickness'] = df['Start Depth'] - df['End Depth']
如果需要正的厚度值,可改为结束深度减起始深度:
df['Thickness (Abs)'] = df['End Depth'] - df['Start Depth']
完整代码示例
import pandas as pd # 读取CSV数据 df = pd.read_csv('/PermeabilityData.csv', sep=";") # 分割深度列并转换类型 df[['Start Depth', 'End Depth']] = df['Depth [ft]'].str.split('-', expand=True).astype(int) # 计算差值 df['Thickness'] = df['Start Depth'] - df['End Depth'] # 展示结果 display(df)
运行结果示例
处理后的DataFrame会包含新增的计算列:
| Depth [ft] | Permeability [mD] | Start Depth | End Depth | Thickness | |
|---|---|---|---|---|---|
| 0 | 3998-4002 | 180 | 3998 | 4002 | -4 |
| 1 | 4002-4004 | 150 | 4002 | 4004 | -2 |
| 2 | 4004-4006 | 200 | 4004 | 4006 | -2 |
| 3 | 4006-4008 | 140 | 4006 | 4008 | -2 |
| 4 | 4008-4010 | 160 | 4008 | 4010 | -2 |
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

