【问题标题】:Apply function to a specific number of rows in a DataFrame将函数应用于 DataFrame 中的特定行数
【发布时间】:2014-01-26 05:14:23
【问题描述】:

我有一个天气数据,我需要将一个函数应用于特定数量的行。例如,计算每 10 或 15 行的平均值。行数很重要,因为日期中有很多缺失值,我不想依赖它。

我试过groupby,但我只能指定小时或分钟。无论如何,我想应用任何独立于 DateTime index 的函数。

我认为切片DF 是一个选项df[:9],但我不知道如何将其应用于所有行?

下面的简单示例:

index=date_range('2013-1-1 00:00:03', '2013-01-31  23:59:03', freq='1min')
df=pd.DataFrame(np.random.rand(len(index),3),index=index)

df.groupby(df.index.map(lambda t: t.minute))

希望得到任何建议。

【问题讨论】:

  • 假设您想每 10 行组合一次,但您的框架有 53 行。你想用多余的东西做什么?他们是否应该在一个组中?
  • 还有你要应用的功能是什么? df.resample('10min', how=<your_func>) 有效吗?
  • @DSM 多余的行可以忽略。
  • @TomAugspurger 我想听听你的建议,但问题是我不能使用分钟作为频率。我必须使用行:/代码只是为了展示一个例子......

标签: python lambda pandas


【解决方案1】:

感谢 @TomAugspurger,我找到了解决方案。

使用this answer

 df.resample(df.index.freq * 10, how='mean')

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2019-04-10
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多