提取一个值(地面积雪cm)>0(大于0)的月份的最大天数

2024-09-30 00:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图显示地面积雪值大于零的月份的最大日期。这是数据帧的头部。2018年的每一天都在阅读

这就是我目前所能做到的:

enter image description here

最小降雪日期​

dfsmin = df.rename(columns={'Snow on Grnd (cm)':'Snow_on_Grnd_cm'}, inplace=True)
​
dfs_minsnow_date1 = df.loc[df.groupby('Month').Snow_on_Grnd_cm.idxmin(),:]
​
dfs_minsow_date_noround = dfs_minsnow_date1[['Month', 'Day', 'Snow_on_Grnd_cm']]     
​
dfs_minsow_date = dfs_minsow_date_noround.round(1)
​
d ={1:'January',2:'February',3:'March',4:'April',5:'May',6:'June',7:'July',8:'August',9:'September',10:'October',11:'November',12:'December'}
​
dfs_minsow_date.Month = dfs_minsow_date.Month.map(d)
​
dfs_minsow_date.set_index('Month')
​
dfs_minsow_date.transpose()

输出

[![Output:][1]][1]

enter image description here

编辑:谢谢你的信誉点,图片上传


Tags: dfdateoncm月份snowdfsmonth
2条回答

给定一个固定的月份,比如说,一月:

MaxDayWithSnow = max(df['Day'][(df['Month'] == 'January') & (df['Snow_on_Grnd_cm'] > 0)])

在这里,“&;”表示AND运算符

假设您有标为DayMonthSnow_on_Grnd_cm的数字系列,您可以先按雪量过滤,按天排序,然后按月删除重复项:

res = df.query('Snow_on_Grnd_cm > 0')\
        .sort_values('Day', ascending=False)\
        .drop_duplicates('Month')

注意:如果特定月份的所有值都是0,那么结果将不会有该月份的行

相关问题 更多 >

    热门问题