python - 计算每 5 行特定列的平均值,并选择 pandas 数据框中另一列的最后一个数据(第五个)

标签 python python-2.7 pandas dataframe

我有 pandas df,比如 100 行,4 列。我想每 5 行计算特定列(“值”)中的平均值,并选择另一列(“日期”)的最后一个数据(第五个)以保留在新数据框中。我怎样才能做到这一点?

我的数据框如下所示:

>>df
          Date     Product     Location       Value
0   12-08-2018           A           S1       1.313
1   12-08-2018           B           S1       3.089
2   12-08-2018           C           S1       1.890
3   12-08-2018           D           S1       3.136
4*  12-08-2018           E           S1       3.258
5   13-08-2018           F           S1       3.113
6   13-08-2018           G           S1       2.651
7   13-08-2018           H           S1       2.135
8   13-08-2018           I           S1       1.555
9*  14-08-2018           J           S1       2.009
10  14-08-2018           K           S1       1.757
11  14-08-2018           L           S1       1.808
12  14-08-2018           M           S1       1.511
13  15-08-2018           N           S1       2.265
14* 15-08-2018           O           S1       2.356

我想把它变成新的数据框,如下所示:

>> new_df
      Date           Value
0  12-08-2018       2.5372
1  14-08-2018       2.2926
2  15-08-2018       1.9394

你能帮我一下吗?

注意:我每 5 行添加 * 以便于观察。

最佳答案

使用groupby聚合 agglastmeannp.arange 并按 5 划分楼层:

df = df.groupby(np.arange(len(df)) // 5).agg({'Date':'last', 'Value':'mean'})
print (df)
         Date   Value
0  12-08-2018  2.5372
1  14-08-2018  2.2926
2  15-08-2018  1.9394

如果默认的 RangeIndex 解决方案应该简化:

df = df.groupby(df.index // 5).agg({'Date':'last', 'Value':'mean'})

详细信息:

print (np.arange(len(df)) // 5)
[0 0 0 0 0 1 1 1 1 1 2 2 2 2 2]

关于python - 计算每 5 行特定列的平均值,并选择 pandas 数据框中另一列的最后一个数据(第五个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51700673/

相关文章:

python - 如何在二维数组中创建来自 2 个不同数组的所有组合

python - 从 Python 中的集合中选择一个项目

python - 值错误 : array is too big - cannot understand how to fix this

python - 选择两个日期之间的 Pandas 数据框行

python - 绘制分组日期时间 - Pandas

python - 如何在 flask 中只执行一次代码块?

python - scipy.signal.lfilter : *** ValueError: object of too small depth for desired array

python - 如何在 Django 中设计多对多关系?

Python 导入错误 : No module named datetime

python - 如何有效地检索 groupby 对象作为 pd.Series 的函数