首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >划出滚动和

划出滚动和
EN

Stack Overflow用户
提问于 2013-08-11 17:52:08
回答 1查看 2.8K关注 0票数 1

我有一只熊猫

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pandas import DataFrame, Series

其中每一行对应于一种情况,而每列对应于一个月。我想每12个月做一次滚动总结。看起来很简单,但我被困住了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = [x for x.rolling_sum(12) in df.iterrows()]
result = [x for x.rolling_sum(12) in df.T.iteritems()]    

SyntaxError:不能分配给函数调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = []
for x in df.iterrows():
    s = x.rolling_sum(12)
    a.append(s)

AttributeError:'tuple‘对象没有属性'rolling_sum’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-11 17:53:11

我想也许你要找的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pd.rolling_sum(df, 12, axis=1)

在这种情况下,不需要理解列表。axis=1参数导致Pandas计算df行上的滚动和。

例如,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import pandas as pd
ncols, nrows = 13, 2
df = pd.DataFrame(np.arange(ncols*nrows).reshape(nrows, ncols))
print(df)
#    0   1   2   3   4   5   6   7   8   9   10  11  12
# 0   0   1   2   3   4   5   6   7   8   9  10  11  12
# 1  13  14  15  16  17  18  19  20  21  22  23  24  25

print(pd.rolling_sum(df, 12, axis=1))

版画

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   0   1   2   3   4   5   6   7   8   9   10   11   12
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN   66   78
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN  222  234

关于你的清单理解:

你把清单中的部分理解错了。尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = [expression for x in df.iterrows()]

有关列表理解的更多信息,请参见医生们

列表理解的基本形式是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[expression for variable in sequence]

在Python执行之后,生成的列表相当于result

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = []
for variable in sequence:
    result.append(expression)

有关列表理解的完整语法,请参见此链接

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18178537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文