【发布时间】:2020-01-08 12:33:34
【问题描述】:
如果过去已经回答了这个问题,我想道歉,我不知道如何表达这个问题。 对于空间中的每个点,我有一个带有 3d 坐标和带有标量值(在这种情况下为磁场)的行的数据框。我将半径计算为每个点与 (x,y)=(0,0) 处的线的距离。唯一的半径和 z 值被传输到一个新的数据帧中。现在我想通过对 3d 系统中具有相等半径的所有点进行平均来计算体积中每个点 (Z,R) 的标量值。
目前我正在迭代所有唯一的 Z 和 R 值。它可以工作,但速度非常慢。
df 是原始数据帧,dfn 是新数据帧,一开始只包含 R 和 Z 值的唯一组合。
for r in dfn.R.unique():
for z in df.Z.unique():
dfn.loc[(df["R"]==r)&(df["Z"]==z), "B"] = df["B"][(df["R"]==r)&(df["Z"]==z)].mean()
有没有办法通过编写一行代码来加快这一速度,其中给 pandas 提供了从原始数据帧中获取所有行的命令,其中 Z 和 R 具有根据新数据帧中每一行的值?
提前感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe iteration