python - 从两个表执行计算,根据另一个列值选择一个列值
问题描述
我有两个不同的表 df_postErup 和 df_preErup。我想从 df_postErup 中获取某个月份的值,然后从 df_preErup 中扣除相应的平均值。(即,对于月份 = 3,从 df_postErup 获取值 0.394,然后从 df_preErup 获取该月 = 3 的平均值 = 0.669。然后计算差异并将其存储在名为“delta”0.394-0.669 的新列中)
我编写了以下代码,但它给了我 Nan 值,
for i in range (1,13):
df_postErup['delta'] = (df_postErup.loc[df_postErup['months'] == i, 'values']) - (df_preErup.loc[df_preErup['months'] == i, 'mean_values'])
解决方案
设法解决了问题,但如果有人有更好的答案,请发布
#Create a New empty column in df_postErup which will store the mean values for each month from df_pre
df_postErup['mean ndvi pre'] = ""
for i in range(0,12):
df_postErup.loc[df_postErup['months'] == (i + 1), ['mean ndvi pre']] = df_preErup.iloc[i,1]
#Calculate the difference, delta
df_postErup['delta'] = df_postErup['ndvi'] - df_postErup['mean ndvi pre']
推荐阅读
- kubernetes - 由于 GCP 服务帐户,Pod 在 Kubernetes 中获得了 CrashLoopBackOff
- sql-server - 计数日的 T-SQL 脚本
- python - 如何使对象在 tkinter 中不断移动
- html - 响应式缩放绝对定位的元素
- jquery - 有没有办法旋转 HTML 选择框的内容?
- unreal-engine4 - 为多个网格创建通用蓝图
- reactjs - 在 Sagas 测试中没有调用我的模拟函数
- regex - 用于基于多个值进行过滤的正则表达式
- python - Cocotb 协程从未调用过
- python - 高效查询多列 SQLAlchemy ORM