根据另一个数据框中具有最小/最大值的列从pandas数据框中选择值



我有两个数据帧,其中一年中不同的季度作为列,特定的位置作为行:

温度:

<表类>q_1q_2q_3q_4tbody><<tr>105005B60301C602916

我不知道lookup的最佳替代方案,但这可能有效。

DF_new = pd.DataFrame({'temp_wettest': temp.stack().loc[list(map(tuple,prec.idxmax(axis=1).reset_index().to_numpy()))].tolist(),
'temp_driest' : temp.stack().loc[list(map(tuple,prec.idxmin(axis=1).reset_index().to_numpy()))].tolist(),
'precip_warmest': prec.stack().loc[list(map(tuple,temp.idxmax(axis=1).reset_index().to_numpy()))].tolist(),
'precip_coolest': prec.stack().loc[list(map(tuple,temp.idxmin(axis=1).reset_index().to_numpy()))].tolist()})

如果你有Pandas版本<1.2.0, trylookup:

DF_new = pd.DataFrame({'temp_wettest': temp.lookup(prec.index, prec.idxmax(axis=1)),
'temp_driest' : temp.lookup(prec.index, prec.idxmin(axis=1)),
'precip_warmest': prec.lookup(temp.index, temp.idxmax(1)),
'precip_coolest': prec.lookup(temp.index, temp.idxmin(1))
})

输出:

temp_wettest  temp_driest  precip_warmest  precip_coolest
0            10            0               1               0
1             0            1              12              13
2             2           16               3              20

相关内容

  • 没有找到相关文章

最新更新