Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 数据帧行上的滚动窗口Python 3_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 数据帧行上的滚动窗口Python 3

Python 3.x 数据帧行上的滚动窗口Python 3,python-3.x,pandas,Python 3.x,Pandas,有没有办法在数据帧行上创建一个滚动窗口(2个周期)并计算值的总和 我的数据: ID Name Value1 Value2 Value3 Value4 0 A 2 2 4 4 1 B 1 1 3 3 所需的输出: ID Name Value1 Value2 Value3 Value4 Rol1 Rol2 Rol3 0 A 2 2 4 4 4

有没有办法在数据帧行上创建一个滚动窗口(2个周期)并计算值的总和

我的数据:

ID Name Value1 Value2 Value3 Value4
0   A      2       2      4      4
1   B      1       1      3      3
所需的输出:

ID Name Value1 Value2 Value3 Value4   Rol1 Rol2 Rol3
0   A      2       2      4      4       4    6    8
1   B      1       1      3      3       2    4    6
我尝试使用df.rolling(),但只能在您可以使用的特定列上使用它,但首先是无法在函数中使用的列,最后是用于删除所有
NaN
s列的添加:

df1 = (df.set_index(['ID','Name'])
       .rolling(2, axis=1).sum()
       .dropna(axis=1, how='all'))
#rename columns
df1.columns = ['Roll{}'.format(x) for x in range(1, len(df1.columns)+1)]
print (df1)
         Roll1  Roll2  Roll3
ID Name                     
0  A       4.0    6.0    8.0
1  B       2.0    4.0    6.0
最后输出到原始文件:

df = df.join(df1, on=['ID','Name'])
print (df)
   ID Name  Value1  Value2  Value3  Value4  Roll1  Roll2  Roll3
0   0    A       2       2       4       4    4.0    6.0    8.0
1   1    B       1       1       3       3    2.0    4.0    6.0