我正在尝试显示一个月的最大日期,其中地面上的积雪值大于零。这是数据帧的开头。它每天都在阅读2018年全年的内容。
这是我到目前为止所能获得的:
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]
编辑:谢谢您的信誉点,图片已上传!
答案 0 :(得分:1)
假设您有标记为Day
,Month
和Snow_on_Grnd_cm
的数字系列,则可以先按降雪量过滤,按天排序,然后按月删除重复项:
res = df.query('Snow_on_Grnd_cm > 0')\
.sort_values('Day', ascending=False)\
.drop_duplicates('Month')
请注意,如果特定月份的所有值均为0,则该月的结果将没有一行。
答案 1 :(得分:0)
给定一个固定的月份,比如说一月:
MaxDayWithSnow = max(df['Day'][(df['Month'] == 'January') & (df['Snow_on_Grnd_cm'] > 0)])
在这里,“&”表示AND运算符。