我试图使用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'下,