- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个如下所示的数据框
import pandas as pd
data = {'team': ['team1','team1','team1','team1','team1','team1','team1','team1','team1','team1','team1','team1','team1','team1',
'team2','team2','team2','team2','team2','team2','team2','team2','team2','team2','team2','team2','team2','team2',],
'score': [1,2,3,4,5,6,7,8,9,10,11,12,13,14,1,2,3,4,5,6,7,8,9,10,11,12,13,14],
'yards': [10,20,30,40,50,60,70,80,90,100,110,120,130,140,10,20,30,40,50,60,70,80,90,100,110,120,130,140]}
df = pd.DataFrame.from_dict(data)
我正在尝试使用这篇文章中找到的手动方法(Does Pandas calculate ewm wrong?)来计算“分数”和“码数”列的 ewm,但我注意到我的跨度对于每个分组团队来说并没有按预期工作。这就是我到目前为止的代码
ema_features = df[['team']].copy()
for feature_name in df[['score','yards']]:
span=10
feature_ema = (df.groupby('team')[feature_name].rolling(window=span, min_periods=span).mean()[:span])
rest = df[feature_name][span:]
x = pd.concat([feature_ema, rest]).ewm(span=span, adjust=False).mean()
ema_features[feature_name] = x
输出如下
ema_features
team score yards
0 team1 NaN NaN
1 team1 NaN NaN
2 team1 NaN NaN
3 team1 NaN NaN
4 team1 NaN NaN
5 team1 NaN NaN
6 team1 NaN NaN
7 team1 NaN NaN
8 team1 NaN NaN
9 team1 NaN NaN
10 team1 6.500000 65.000000
11 team1 7.500000 75.000000
12 team1 8.500000 85.000000
13 team1 9.500000 95.000000
14 team2 7.954545 79.545455
15 team2 6.871901 68.719008
16 team2 6.167919 61.679189
17 team2 5.773752 57.737518
18 team2 5.633070 56.330696
19 team2 5.699784 56.997843
20 team2 5.936187 59.361871
21 team2 6.311426 63.114258
22 team2 6.800257 68.002575
23 team2 7.382029 73.820289
24 team2 8.039842 80.398418
25 team2 8.759871 87.598706
26 team2 9.530803 95.308032
27 team2 10.343384 103.433844
我的问题是,如何让我的跨度也适用于团队 2?而不是上面的输出,其中团队 2 的 ewm 是与团队 1 一起计算的。我希望每个团队的 ewm 彼此单独计算,这需要应用正确的跨度,然后进行计算,就像我在下面所期望的那样。
ema_features
team score yards
0 team1 NaN NaN
1 team1 NaN NaN
2 team1 NaN NaN
3 team1 NaN NaN
4 team1 NaN NaN
5 team1 NaN NaN
6 team1 NaN NaN
7 team1 NaN NaN
8 team1 NaN NaN
9 team1 NaN NaN
10 team1 6.500000 65.000000
11 team1 7.500000 75.000000
12 team1 8.500000 85.000000
13 team1 9.500000 95.000000
14 team2 NaN NaN
15 team2 NaN NaN
16 team2 NaN NaN
17 team2 NaN NaN
18 team2 NaN NaN
19 team2 NaN NaN
20 team2 NaN NaN
21 team2 NaN NaN
22 team2 NaN NaN
23 team2 6.500000 65.000000
24 team2 7.500000 75.000000
25 team2 8.500000 85.000000
26 team2 9.500000 95.000000
最佳答案
您可以尝试使用 GroupBy.apply
具有自定义功能。因此,调整您的 for
循环,尝试如下操作:
def team_ema(team, span=10):
feature_ema = team.rolling(window=span, min_periods=span).mean()[:span]
rest = team[span:]
return pd.concat([feature_ema, rest]).ewm(span=span, adjust=False).mean()
df.groupby('team').apply(team_ema)
关于python - Pandas Groupby 计算 ewm 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52459397/
给定输入: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 将数字按奇数或偶数分组,然后按小于或大于 5 分组。 预期输出: [[1, 3, 5], [2, 4], [6, 8, 10
编辑: @coldspeed、@wen-ben、@ALollz 指出了我在字符串 np.nan 中犯的新手错误。答案很好,所以我不删除这个问题来保留那些答案。 原文: 我读过这个问题/答案 What'
我试图概括我提出的问题 here . mlb 数据框看起来像 Player Position Salary Year 0 Mike Wit
我认为我不需要共享整个数据框,但基本上,这是有问题的代码行(当然,已经导入了 pandas) divstack = df[df['Competitor']=='Emma Slabach'].group
我面临下一个问题:我有组(按 ID),对于所有这些组,我需要应用以下代码:如果组内位置之间的距离在 3 米以内,则需要将它们添加在一起,因此将创建一个新组(代码如何创建我在下面显示的组)。现在,我想要
我有以下数据: ,dateTime,magnitude,occurrence,dateTime_s 1,2017-11-20 08:00:09.052260,12861,1,2017-11-20 08
我按感兴趣的列对 df 进行分组: grouped = df.groupby('columnA') 现在我只想保留至少有 5 名成员的组: grouped.filter(lambda x: len(x
数据是一个时间序列,许多成员 ID 与许多类别相关联: data_df = pd.DataFrame({'Date': ['2018-09-14 00:00:22',
选择 u.UM_TOKEN_NO 、u.UM_FULLNAME、u.SECTOR、u.department_name、t.TS_PROJECT_CODE、sum(t.TS_TOTAL_HRS) 来自
我有这两个表: +---------------+-------------+---------------------+----------+---------+ | items_ordered |
我正在使用 groupby 和 sum 快速汇总两个数据集 一个包含: sequence shares 1 100 2 200 3 50 1 2
这个问题在这里已经有了答案: list around groupby results in empty groups (3 个答案) itertools groupby object not out
我有一组行,我想按标识符的值进行分组 - 存在于每一行中 - 然后对将作为结果的组进行进一步的隔离处理。 我的数据框是这样的: In [50]: df Out[50]: groupkey b
假设您要在全局范围内销售产品,并且希望在某个主要城市的某个地方设立销售办事处。您的决定将完全基于销售数字。 这将是您的(简化的)销售数据: df={ 'Product':'Chair', 'Count
我有一个将数据分组两次的查询: var query = (from a in Context.SetA() from b in Context.SetB().Where(x => x.aId == a
我有一个这种格式的数据框: value identifier 2007-01-01 0.087085 55 2007-01-01 0.703249
这个问题在这里已经有了答案: python groupby behaviour? (3 个答案) 关闭 4 年前。 我有一个这样的列表 [u'201003', u'200403', u'200803
在 Python 中,我可以使用 itertools.groupby 将具有相同键的连续元素分组。 : >>> items = [(1, 2), (1, 5), (1, 3), (2, 9), (3,
无法翻译以下 GroupBy 查询并将引发错误:不支持客户端 GroupBy IEnumerable ids = new List { 1, 2, 3 }; var q = db.Comments.W
考虑一个 Spark DataFrame,其中只有很少的列。目标是对其执行 groupBy 操作,而不将其转换为 Pandas DataFrame。等效的 Pandas groupBy 代码如下所示:
我是一名优秀的程序员,十分优秀!