python - 将 pandas groupby 值转换为 numpy 数组

标签 python python-3.x pandas numpy pandas-groupby

尝试了多种解决方案,但没有一个能提供所需的输出。

我有一个数据框:

 tag    value
 'A'     3.7
 'A'     1.5
 'E'     9.7
 'E'     2.9
 'B'    -1.2
 'B'     0.8

我的预期输出是一个 Numpy 数组:

array([[3.7, 1.5],
      [9.7, 2.9],
      [-1.2, 0.8]])

我尝试使用 groupby 并在 numpy 数组中进行转换

df.groupby(['tag']).value.apply(np.array).values

但是我得到的输出是:

array([array([3.7, 1.5]), array([9.7, 2.9]), array([-1.2, 0.8]))], dtype=object)

最佳答案

如果每组总是有相同数量的值,则可以创建嵌套列表并传递给 np.array,同样对于相同顺序的组添加 sort=False 参数至 DataFrame.groupby :

arr = np.array(df.groupby(['tag'], sort=False).value.apply(list).tolist())
print (arr)
[[ 3.7  1.5]
 [ 9.7  2.9]
 [-1.2  0.8]]

关于python - 将 pandas groupby 值转换为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63447689/

相关文章:

python - 如何加快 python 中的数组生成速度?

javascript - 表单提交与使用 ajax 传递数据的按钮 - 一个有效,另一个无效

python - 将 PyQt5 按钮连接到函数时如何使用 lambda

python - Tornado 请求处理程序 : How to decode url encoded query before getting the arguments

像excel一样的Python字符串序列

python - 数据框 : select different index for each columns

python - 仅当验证准确性提高时,我如何才能保存/覆盖我的 TensorFlow/Keras 模型?

python - PyCharm 警告 "End of statement expected"类型提示内部

python - Pandas 按组转置数字列

python - 有没有一种简单的方法可以将 Pandas 系列转换为系列中值的比率交叉表?