【问题标题】:How to manipulate your Data Set based on the values of your index?如何根据索引值操作数据集?
【发布时间】:2020-04-09 22:55:30
【问题描述】:

我有这个数据集,wind_modified。在此数据集中,列是位置,索引是日期。列中的值是风速。 假设我想找到每个位置一月份的平均风速,我如何使用 groupby 或任何其他方法来找到平均值? 是否可以不重置 INDEX? 编辑 - [This][2] 是实际的数据集。我已将“Yr、Mo、Dy”三列合并为一列,即“DATE”并将其设为 INDEX。 我使用pd.read_fwf 导入了数据集。 而“DATE”的类型是 datetime64[ns]。

[2]:

【问题讨论】:

  • 你可以使用 index.groupby()。特别是对于 1 月份的平均风速,只需使用 index.dt.month.groupby(),如果它的日期时间已经存在,如果没有,则首先使用日期时间。
  • 能否提供文本格式的示例数据框而不是图像,以便其他人可以复制粘贴并执行它?
  • 请为您的数据提供一个最小的工作示例。索引可以用于分组,不用担心。
  • 我刚刚上传了数据集文件。您可以在 EDIT 中查看。

标签: python pandas dataframe dataset


【解决方案1】:

当然,如果想要所有年份的所有一月,首先通过boolean indexing 过滤它们并添加mean

#if necessary convert index to DatetimeIndex
#df.index = pd.to_datetime(df.index)

df1 = df[df.index.month == 1].mean().to_frame().T

或者,如果需要在过滤器后分别使用groupbyDatetimeIndex.year 并聚合mean,则每年1 月需要:

df2 = df[df.index.month == 1]
df3 = df2.groupby(df2.index.year).mean()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2012-06-22
    • 2022-08-09
    相关资源
    最近更新 更多