嗨,我是python编程的新手,我还在学习。 我想问我有一个csv数据,其中有5列(TC,TD,TG,P,CTTR)。我想为CTTR列存储新值。你知道吗
CTTR柱的新公式为
我是电话号码。你知道吗
但我不知道如何将公式写入python。 我知道如何获得原始CTTR值作为熊猫的输入。你知道吗
import pandas as pd
data_df = pd.read_csv("output1.csv")
cttr = data_df['CTTR']
print cttr
我有12行,我希望输出有相同的输入行数。如果索引[0],则cttr[i-2]和cttr[i-1]的值将为==0,当索引[11]时,cttr[i+2]和cttrs[i+1]的值将为==0。然后我想用CTTR到csv的新值替换CTTR的原始值。你知道吗
原始CTTR值
0
2
2
23
18
28
27
58
41
12
35
20
我期望的结果
0.6------> (0 + 2*0 + 4*0 + 2*2 + 2)/10
3.5 -----> (0 + 2*0 +4*2 +2*2 + 23)/10
7.6
16.2
20.3
28.3
33.9
40.8
36.6
27.8
24.5-----> (41 + 2*12 + 4*35 + 2*20 + 0)/10
16.2-----> (12 + 2*35 + 4*20 +2*0 + 0)/10
谢谢你!你知道吗
你不太清楚你想要的结果,但有一种方法可以做到:
也就是说,基本上你正在实现一个加权的滚动平均值,我确信已经有了一个实现(也许看看熊猫^{} )
如果要在第一个/最后一个位置设置零,则可以执行以下操作:
虽然这有点不方便,但您可能希望将其封装在如下函数中:
然后您可以直接在您的系列中调用:
要写入csv,可以将转换的列指定给数据帧,并使用csv编写器导出到csv:
编辑-
最新注释中描述的边界行为可以通过在应用转换之前填充序列,然后返回结果数组而不包含前两个和后两个条目来实现:
相关问题 更多 >
编程相关推荐