问题陈述:在所有可用记录中,maximum_gust_speed(即列的名称)的中位数最高的是哪个月份?同时打印其值。
Day 3280 non-null object
Average temperature (°F) 3280 non-null float64
Average gustspeed (mph) 3280 non-null float64
Maximum temperature (°F) 3280 non-null float64
Maximum gust speed (mph) 3280 non-null float64
Day 具有 String 类型的日期,例如“dd/mm/yyyy”。
我的代码:
ave = data.groupby(pd.DatetimeIndex(data['Day']).month)['Maximum gust speed (mph)'].median().reset_index(name='Median')
gust=ave['Median'].max()
max_gust_value = "{0:.2f}".format(ave['Median'].max())
mnth=ave[ave.Median==gust]['Day']
max_gust_month = mnth.values[0]
print(max_gust_value)
print(max_gust_month)
答案与预期结果不符。预期的月份值应为 2,而在我的情况下为 11。请告诉我要对代码进行哪些更改。
答案 0 :(得分:1)
我已将以下内容应用于答案。测试一下,让我知道。我相信这也是您案例中的气候数据集。
首先,创建一个 Month 列,在我的例子中,提取的月份就像 - 一月它是“01”。
按最大阵风速度 (mph) 和月份发布一组。然后提取您的要求,就我而言,我需要 max_gust_value
和 max_gust_month
。你可以按照同样的方法。
df['Month'] = df['Day'].apply(lambda x:x.split('/')[1])
df_med_gust=df['Maximum gust speed (mph)'].groupby(df['Month']).median()
max_gust_value = df_med_gust[str(df_med_gust.idxmax())[:10]]
max_gust_month = df_med_gust.idxmax()[:10]