使用Pandas一个月内的最低值



我试图使用python和pandas来简化我们通常在excel中做的任务。到目前为止,我已经将两个csv合并为一个df,需要进一步的帮助。无论如何,不深入到我的项目的细节使用以下数据框架,我想计算给定月份的最小海拔:

Start               Minimum Z   Month    
0    2024-10-09 12:00:00  6056.483651  10/24 
1    2029-10-08 00:00:00  5450.000000  10/29 
2    2029-10-15 00:00:00  5450.000000  10/29 
3    2029-10-25 00:00:00  5435.000000  10/29 
4    2029-11-01 00:00:00  5450.000000  11/29 

现在我的目标是取这个数据帧并计算最小z值的最小值栏。所以输出数据帧应该是这样的:

Elevation  Month    
0      6056.483651  10/24 
1      5435.000000  10/29 
2      5450.000000  11/29 
因此,我们的目标是获取数据帧中每个月的最低海拔,并填充一个新的数据帧。我已经搜索了一段时间,看看是否有人做过类似的事情,但我似乎找不到任何东西。任何帮助将不胜感激!

可以使用.groupby().min()

df[['Month','Minimum Z']].groupby('Month').min()

首先选择数据框中的两列。然后.groupby()对分组中列中每个唯一值的行/记录进行分组(所以这里是'Month'),然后它对另一列进行.min()(在这种情况下是'Minimum Z')。如果您想要汇总列的和,您可以执行.sum(),但这当然对海拔没有意义。

如果你想重命名列,只需df = df.rename(columns={'Minimum Z':'Elevation'})

希望能有所帮助。在这里,您得到一个数据帧,其中包含月份

的最小值。
df.merge(df.groupby('Month')['Z'].min().reset_index(), how='inner')

Start   Minimum     Z   Month
0   2024-10-09  12:00:00    6056.483651     10/24
1   2029-10-25  00:00:00    5435.000000     10/29
2   2029-11-01  00:00:00    5450.000000     11/29

PS:在我复制数据帧时,时间最终在列'minimum'下,

最新更新