- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下数据框:
df1
index year week a b c
-10 2017 10 45 26 19
-9 2017 11 37 23 14
-8 2017 12 21 66 19
-7 2017 13 47 36 92
-6 2017 14 82 65 18
-5 2017 15 68 68 19
-4 2017 16 30 95 24
-3 2017 17 21 15 94
-2 2017 18 67 30 16
-1 2017 19 10 13 13
0 2017 20 26 22 18
1 2017 21 NaN NaN NaN
2 2017 22 NaN NaN NaN
3 2017 23 NaN NaN NaN
4 2017 24 NaN NaN NaN
...
53 2018 20 NaN NaN NaN
我需要为每个空单元格计算列中前 n 个值的平均值,并将该值写入单元格。 n
等于从零开始的索引数。例如,对于 a
列中的第一个空单元格,我必须计算索引 0
和 -10
之间的平均值。然后是 1
和 -9
之间的下一个单元格,依此类推。 a
、b
和 c
列也是如此。计算总是从 index = 1
开始。
而且问题是a
、b
、c
等列的数量可以不同。但我知道这些列总是在 week
列之后。是否可以将这些计算应用于不确定数量的列,但如果已知这些列将位于 week
列之后?
我努力寻找任何东西,但找不到合适的东西。
UPD:如果这有帮助,从 index = 0
开始的最大行数将为 53
。
最佳答案
这可以像下面这样完成:
n = 11 # in the example of your explanation
df = df1.loc[range(1,df1.index[-1]+1)] # select rows from index 1 above
df
应该是这样的:
year week a b c
index
1 2017 21 NaN NaN NaN
2 2017 22 NaN NaN NaN
3 2017 23 NaN NaN NaN
4 2017 24 NaN NaN NaN
然后你:
for s in list(df.index): # iterate through rows with nan values
for i in range(2,df.columns.size): # iterate through different cols ('a','b','c' or more)
df1.loc[s,df.columns[i]] = df1.loc[range(s-n,s),df.columns[i]].sum()/n
print(df1)
请注意,在这种情况下,我按照您的示例进行操作,并假设 year
始终是第一列,week
始终是第二列,以便选择 之后的所有列week
和 index
是..索引
输出:
year week a b c
index
-10 2017 10 45.000000 26.000000 19.000000
-9 2017 11 37.000000 23.000000 14.000000
-8 2017 12 21.000000 66.000000 19.000000
-7 2017 13 47.000000 36.000000 92.000000
-6 2017 14 82.000000 65.000000 18.000000
-5 2017 15 68.000000 68.000000 19.000000
-4 2017 16 30.000000 95.000000 24.000000
-3 2017 17 21.000000 15.000000 94.000000
-2 2017 18 67.000000 30.000000 16.000000
-1 2017 19 10.000000 13.000000 13.000000
0 2017 20 26.000000 22.000000 18.000000
1 2017 21 41.272727 41.727273 31.454545
2 2017 22 40.933884 43.157025 32.586777
3 2017 23 41.291510 44.989482 34.276484
4 2017 24 43.136193 43.079434 35.665255
关于python - 计算pandas中列中第n个元素的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44904330/
我有一个大小为 320x320 像素的阈值图像。我通过设置 ROI 以 20x20 像素的 block 循环遍历整个图像。我需要找到每个 block 的平均值。所以我将这些图像 block 传递给函数
我正在尝试学习 Javascript。我已经构建了以下代码来从一组数字中找到平均值。它有效除了最后返回的值总是 NaN。我不知道为什么。如果我将这 block 移到 block 外,它似乎完全忘记了变
假设我的数据已经分组,我该如何计算中位数和其他统计数据? Index Value Count 0 6 2 1 2 3 2 9 8 在上面
我试图计算的有趣情况。基本上在一行中,我有产品名称,其右侧的行是自首次收到产品以来经过的天数。 为 ex 计算的天数是 =TODAY()-BB2 我现在要做的是识别让我们说产品词“卡车”,然后计算卡车
我想知道如何计算某些数字的累积平均值。我将举一个简单的例子来描述我在寻找什么。 我有以下号码 vec 1) 为您的向量(或列表、一维数组或您如何称呼它)的每个元素评估此表达式,您将获得累积平均值。
我正在尝试对数据库表中的每一行进行平均。但它不能正常工作我想忽略该值,如果为空,它不会计算为零。使用我的代码,它将空值计算为零我想这样做 MS Excel 如果行/单元格为空,它将忽略。 Contro
我有以下信息(按 View 返回): DateTime ItemID UserTyp Seconds 2012-01-01 10 S 12 2012-01-01
我正在使用excel的average函数来获取欧洲各个城市一系列酒店价格的平均值。 =average(21,42,63,84,105) 我希望能够计算每个平均函数中的变量数量(例如,在上面的示例中有
我有一长串列,我想一次性计算非零中位数、平均值和标准差。我不能只删除基于 1 列的 0 行,因为同一列中另一列的值可能不是 0。 下面是我目前的代码,用于计算中位数、平均值等,包括零。 agg
这是我的问题: 我有一张这样的 table : Table Log int id; int time; timestamp DATE; int sid (FK to table Site);
JSON: [{"id":"1","user":"001","answer":"1,1,3,2,2,1,3,2"}, {"id":"2","user":"002","answer":"2,3,3,2,
有个问题: 使用适当的列名称,显示 obs 类型“CONT”的允许 ID 和平均 obs 值,其中 CONT 的平均 obs 值 >= 40。 假设承认是表1,观察是表2,但具有相同的主键Admit_
我有一个记录传感器数据的应用程序,我希望能够从多个传感器生成平均值,可以是一个、两个、三个或很多... 编辑:这些是温度传感器,因此 0 是传感器可能作为值存储在数据库中的值。 我最初的出发点是这个
我有这样一个数据框 id power flag 0 20 0 1 25 0 2 26 1 3 30 1 4 18 0 5
我想计算所有事件 blob 的平均位置。为此,首先我需要所有 X 和 Y 位置的总和。在这种情况下我该怎么做? contourFinder.findContours(grayImg, minB
我是一个十足的 Java 新手。上周一开始,之前从未用任何语言进行过任何编程。因此,如果我发现简单的事情变得复杂,请耐心等待。 我收到了一个文本文件。如下图: 第一个数据是时间(午夜过后的秒数),第二
我正在尝试为 Audacity 编写一个简单的测量插件,它就像用石头砸我的头骨一样有趣。我想要做的就是获取一段音频并找到所有样本的平均值(该 block 的 DC offset ),这样我就可以将它作
我正在尝试计算给定多边形内的值: 实际上我正在使用这个管道: 'aggregation': { 'pipeline': [ { "$match" : {
我有一个 pandas DataFrame,其中包含包含列表的列。我正在尝试获取此专栏中列表的方法。 这是我的 DataFrame 的示例: Loc Background 0
我尝试加速计算放置在数组中的4d向量的平均值。这是我的代码: #include #include #include #include #include #include typedef f
我是一名优秀的程序员,十分优秀!