如何在按月分组的熊猫数据框中找到最高中值?

时间:2021-01-20 13:11:58

标签: python pandas

问题陈述:在所有可用记录中,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。请告诉我要对代码进行哪些更改。

1 个答案:

答案 0 :(得分:1)

我已将以下内容应用于答案。测试一下,让我知道。我相信这也是您案例中的气候数据集。

首先,创建一个 Month 列,在我的例子中,提取的月份就像 - 一月它是“01”。

按最大阵风速度 (mph) 和月份发布一组。然后提取您的要求,就我而言,我需要 max_gust_valuemax_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]
相关问题