python - 基于具有相同长度的 pandas.DataFrame 的 groupby 的 numpy.array 进行 Groupby

标签 python arrays pandas numpy dataframe

我有一个 numpy.array arr 和一个 pandas.DataFrame df

arrdf 具有相同的形状 (x,y)

我需要按 df 的一列进行分组,并在具有相同形状的 arr 上应用受影响行的转换。

为了清楚起见,这里有一个玩具示例:

arr = 
   0  1   12   3
   2  5   45   47
   3  19  11  111

df =
   A  B   C   D
0  0  1   2   3
1  4  5   6   7
2  4  9  10  11

我想按 Adf 进行分组并计算平均值,但我想要 arr 来代替转换 df > 进行改造。

所以我得到类似的东西:

    arr = 
        0        1         12          3
       (2+3)/2  (5+19)/2   (45+11)/2   (47+111)/2

这可能吗?没有昂贵的循环?

提前致谢

最佳答案

看起来需要首先从arr创建DataFrame,然后groupby按列 A 和聚合 mean 。最后通过values将其转换为numpy array :

print (pd.DataFrame(arr).groupby(df.A).mean().values)
[[  0.    1.   12.    3. ]
 [  2.5  12.   28.   79. ]]

关于python - 基于具有相同长度的 pandas.DataFrame 的 groupby 的 numpy.array 进行 Groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38830134/

相关文章:

python - 如何使用连接和正则表达式?

python - 在尊重其索引结构的同时对多索引进行排序

PHP 文件和数组

ios - 类型转换数组的最有效方法

python - 将数据框转换为子列表或字典

python - gspread 所选列列表的列表

python - 如何使用多处理 python 更新和检索图像?

javascript - 从 jquery 中的二维数组填充下拉列表

python-3.x - 如何修复 "OSError: [WinError 193] %1 is not a valid Win32 application"

python - 将 pandas hub_table 与 Interval 列一起使用会导致 TypeError