pandas - Dataframe 过滤每天的最高值并将其再次保存在具有 2 列的 DataFrame 中

标签 pandas dataframe pandas-groupby

我有一个像这样的 DataFrame。 df:

enter image description here

我将以下函数应用于 df

df_new = df.groupby(pd.Grouper(key="longtime",freq="D")).agg({df.columns[1]: [np.max]})
df_new = pd.DataFrame(data= df_new)
print(df_new)

接下来您会看到df_new 的输出。 DatFrame 有 1 列。但我希望将“longtime”和“amax”存储在 2 个单独的列中。我必须如何调整 df_new 的功能才能实现此目的?

enter image description here

最佳答案

agg 中的一个元素列表中删除 [] 以避免 MultiIndex 并添加 DataFrame.reset_index :

df_new = (df.groupby(pd.Grouper(key="longtime",freq="D"))
            .agg({df.columns[1]: np.max})
            .reset_index())

关于pandas - Dataframe 过滤每天的最高值并将其再次保存在具有 2 列的 DataFrame 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69177570/

相关文章:

python - 如何防止聚合函数删除列?

python - 使用 pandas python 聚合数据

python - 具有多索引的 Pandas 数据透视表小计

python - 如何在python中选择一行中最小的数字?

r - 如何设置一个列表,显示每组目标变量的百分比

python - 仅当它们在附近时才从点列表创建多边形

python - pandas groupby 并计算相同的列值

python - 如果值是第一次出现并且最近一年出现在 Pandas 中,如何创建 0 或 1

python - pandas 应用 np.histogram 来 reshape 数据框

python - 在 Pandas 中使用 set_index 时出现异常