我有一个Pandas数据框,在这里我试图用组的平均值替换每个组中的值。在我的机器上,该行df["signal"].groupby(g).transform(np.mean)
大约需要10秒钟才能运行,N
并N_TRANSITIONS
设置为以下数字。
有没有更快的方法来达到相同的结果?
import pandas as pd
import numpy as np
from time import time
np.random.seed(0)
N = 120000
N_TRANSITIONS = 1400
# generate groups
transition_points = np.random.permutation(np.arange(N))[:N_TRANSITIONS]
transition_points.sort()
transitions = np.zeros((N,), dtype=np.bool)
transitions[transition_points] = True
g = transitions.cumsum()
df = pd.DataFrame({ "signal" : np.random.rand(N)})
# here is my bottleneck for large N
tic = time()
result = df["signal"].groupby(g).transform(np.mean)
toc = time()
print toc - tic
受Jeff的回答启发。这是我机器上最快的方法:
pd.Series(np.repeat(grp.mean().values, grp.count().values))
问题内容: 我的pandas DataFrame主要填充了实数,但是其中也包含一些nan值。 如何nan用列的平均值替换s? 这个问题与这个问题非常相似:numpy array:用列的平均值替换nan值, 但是不幸的是,给出的解决方案不适用于pandas DataFrame。 问题答案: 你可以直接使用来nan直接填充: 的文档字符串说,应该是一个标量或快译通,但是,它似乎工作用为好。如果你想通过
我有一个pandas DataFrame,其中大部分都是实数,但也有一些值。
问题内容: 这应该很简单,但是我发现的最接近的内容是这篇文章: pandas:填充组中的缺失值,但我仍然无法解决我的问题。 假设我有以下数据框 我想在每个“名称”组中用平均值填写,即 我不确定要去哪里: 问题答案: 一种方法是使用:
问题内容: 我有一个由不同子组组成的熊猫数据框。 我想在其组中找到每个ID的排名,值越低越好。在上面的示例中,在组A中,Id 1的排名为1,Id 2的排名为4。在组B中,Id 5的排名为2,在ID 8中的排名为1,因此上。 现在,我通过以下方式评估排名: 按值排序。 创建一个等级函数(假定变量已经排序) 将排名函数分别应用于每个组: 此过程有效,但是当我对数百万行的数据运行时,它确实很慢。是否有人
问题内容: 我有这个样式表: 现在,我想根据一些参数修改1620px的值。像这样: 我希望能够使用JavaScript和jQuery,尽管可以使用纯CSS解决方案。 这是针对在其移动Apple Safari浏览器中运行的iPhone游戏。 问题答案: 如果要修改已包含的样式表中的关键帧规则,请执行以下操作: 如果您不知道顺序,但是知道CSS文件的URL,请替换为。
我想使用JOLT转换做两件事: 过滤名为 myArray 的数组中的元素,以便仅保留具有“v_518”属性的元素 过滤掉除“v_518”和“LFDN”之外的其余元素的所有属性 输入: 期望输出: 到目前为止,我尝试了什么,但没有按预期工作: 我尝试使用http://jolt-demo.appspot.com/#andrewkcarter2中的示例,但我不知道如何做到这一点。