uncle0 发表于 2020-4-29 10:39:39

求平均值Pandas

下表为原始数据

    序号数据A数据B
13020
23121
33222
43323
53424
63525
73626
83727
93828
103929
114030
124131
134232
144333
154434
164535
174636
184737
194838
204939
如何根据上表算出下表结果(数据A的平均值为:每5条数据平均,不足条数据,按照实际条数计算),请告知告示使用Pandas如何做
   序号数据A数据A的平均值数据B数据B的平均值
130322022
231332123
332342224
433352325
534362426
635372527
736382628
837392729
938402830
1039412931
1140423032
1241433133
1342443234
1443453335
1544463436
1645473537
174647.53637.5
1847483738
194848.53838.5
2049493939
   

永恒的蓝色梦想 发表于 2020-4-29 10:56:17

数据A的平均值为:每5条数据平均,不足条数据,按照实际条数计算????

wp231957 发表于 2020-4-29 11:16:30

永恒的蓝色梦想 发表于 2020-4-29 10:56
????

从索引所在得位置 往下数五条数据 计算平均值 填再当前索引位置

uncle0 发表于 2020-4-29 11:27:54

wp231957 发表于 2020-4-29 11:16
从索引所在得位置 往下数五条数据 计算平均值 填再当前索引位置

大概就是这个意思,当不足五条数据时,按时实际条数计算平均值
不知道怎么写

uncle0 发表于 2020-4-29 12:10:33

测试出来了,不过感觉不好,数据量大的时候估计会很慢,请问是否有更好的方法<pre style="background-color:#ffffff;color:#333333;font-family:'Consolas';font-size:9.8pt;"><span style="color:#a71d5d;">import </span>pandas <span style="color:#a71d5d;">as </span>pd</pre><pre style="background-color:#ffffff;color:#333333;font-family:'Consolas';font-size:9.8pt;">
</pre>df = pd.DataFrame(table) # 假设表1为table
df_Row = df .index
A_mean = []
B_mean = []
for i in df_Row:
    x = i + 5
    if x > max(df_Row):
      x = max(df_Row)
    A_mean.append(Rate.loc.mean())
    B_mean.append(Rate.loc.mean())

df_A = pd.DataFrame(A_mean,columns=['A平均值'])
df_B = pd.DataFrame(B_mean,columns=['B平均值'])

df = pd.concat(,axis=1)
页: [1]
查看完整版本: 求平均值Pandas