Python如何在数据帧中滑动求和数据?

Python如何在数据帧中滑动求和数据?,python,python-3.x,pandas,Python,Python 3.x,Pandas,如果我有这样的数据帧 df = [3, 2, 4, 1, 0, 3] 3+2+4 = 9 2+4+1 = 7 4+1+0 = 5 1+0+3 = 4 我想像这样把三个值相加 df = [3, 2, 4, 1, 0, 3] 3+2+4 = 9 2+4+1 = 7 4+1+0 = 5 1+0+3 = 4 因此,结果将是 9, 7, 5, 4 如何使用python对数据帧求和?您可以使用列表中的滑动切片来完成此操作 df = [3, 2, 4, 1, 0, 3] print([sum(df[

如果我有这样的数据帧

df = [3, 2, 4, 1, 0, 3]
3+2+4 = 9
2+4+1 = 7
4+1+0 = 5
1+0+3 = 4
我想像这样把三个值相加

df = [3, 2, 4, 1, 0, 3]
3+2+4 = 9
2+4+1 = 7
4+1+0 = 5
1+0+3 = 4
因此,结果将是

9, 7, 5, 4

如何使用python对数据帧求和?

您可以使用列表中的滑动切片来完成此操作

df = [3, 2, 4, 1, 0, 3]
print([sum(df[i:i+3]) for i in range(len(df)-2)])

您可以使用列表中的滑动切片来完成此操作

df = [3, 2, 4, 1, 0, 3]
print([sum(df[i:i+3]) for i in range(len(df)-2)])

你可以用这样的东西

a = map(lambda x: sum(df[x:x+3]),range(len(df)-2))
print(list(a))

你可以用这样的东西

a = map(lambda x: sum(df[x:x+3]),range(len(df)-2))
print(list(a))

您的
df
不是数据帧。这就是清单。您可以将生成器表达式与
np.roll一起使用

n = 3
a = np.array(df)
sum(np.roll(a, -x) for x in range(n))[:len(a)-n+1]

Out[29]: array([9, 7, 5, 4])

您的
df
不是数据帧。这就是清单。您可以将生成器表达式与
np.roll一起使用

n = 3
a = np.array(df)
sum(np.roll(a, -x) for x in range(n))[:len(a)-n+1]

Out[29]: array([9, 7, 5, 4])

通过pandas方法-
df.rolling(3.sum().dropna().iloc[:,0]。tolist()
@splash58不太
df
这里似乎是一个列表(有点让人困惑)-它至少应该是一个
系列,所以可能:
pd.Series(df).rolling(3).dropna().astype(int).tolist()
可能更接近(取决于完整的滚动窗口结果是否实际适合
int
,而NaN被删除)最后一句是“数据帧”。所以我认为我们可以假设这是一个数据帧/系列。也许OP不知道如何在问题中正确设置答案的格式如果其中一个答案帮助你解决了问题,你将使用它,特别是当许多人花时间提出解决问题的方案时。如果他们没有,请您澄清您的要求。方法-
df.rolling(3).sum().dropna().iloc[:,0]。tolist()
@splash58不太
df
这里似乎是一个列表(有点让人困惑)-它至少应该是一个
系列,所以可能:
pd.Series(df).rolling(3).dropna().astype(int).tolist()
可能更接近(取决于完整的滚动窗口结果是否实际适合
int
,而NaN被删除)最后一句是“数据帧”。所以我认为我们可以假设这是一个数据帧/系列。也许OP不知道如何在问题中正确设置答案的格式如果其中一个答案帮助你解决了问题,你将使用它,特别是当许多人花时间提出解决问题的方案时。如果他们没有,请你澄清你的要求。