当前位置: 首页 > 知识库问答 >
问题:

将groupby值转换为数组列表[重复]

奚昌胤
2023-03-14

下面是一个示例数据帧:

label  data
a      1.09
b      2.1
a      5.0
b      2.0
c      1.9

我想要的是

arr = [[1.09, 5.0], [2.1, 2.0],[1.9]]

最好作为Numpy数组的列表。

我知道df.groupby.groups.keys()给了我列表['a'、'b'、'c'],而df.groupby.groups.values()给了我类似于arr的东西,但作为Int64Index对象。但是,我尝试了df.loc[df.groupby.groups.values()][label'],但没有得到预期的结果。

我该如何实现这一点?谢谢!

共有1个答案

苏培
2023-03-14

最好作为Numpy数组的列表。

最好不要,因为您要求的是粗糙的数组,这意味着内部数组(又名行)的长度并不完全相同。这对Numpy来说是不方便的,这意味着它不能在内部将这些数组有效地存储为C数组。它最终回落到缓慢的python对象。

在这种情况下,我建议使用嵌套的python列表。这可以通过groupbyapply实现。

lst = df.groupby('label')['data'].apply(pd.Series.tolist).tolist()
print(lst)
[[1.09, 5.0], [2.1, 2.0], [1.9]]
 类似资料:
  • 通过使用Java8流: 从性能上看,哪个更好?

  • 问题内容: 我有一个这样的清单: 并在这样的对象上: 如何将“列表”分配给“ myMatrix”? 我不想遍历列表并将元素逐个分配给MyMatrix,但我想尽可能地直接分配它(使用oppurtune修改)。谢谢 问题答案: 您可以使用。 Java文档

  • 问题内容: 我使用一个外部模块(libsvm),该模块不支持numpy数组,仅支持元组,列表和字典。但是我的数据是二维二维数组。我如何以pythonic方式转换它,也就是没有循环。 问题答案: 您可以简单地将矩阵转换为,以证明:

  • 我得到一个json数组从服务器: 我想使用gson将上述json数据转换为Java

  • 有人能向我解释下一行代码会发生什么以及它为什么有效吗? 上面的代码工作正常。它将数组转换为列表,然后添加另一个元素。但是下面的代码不起作用 上面的代码给了我以下错误:线程“main”java.lang.UnsupportedOperationException有人能告诉我这两个转换之间的区别吗?为什么只有第一个转换有效??提前谢谢

  • 问题内容: 我如何转换 至 问题答案: 使用简单的列表理解: 会给你: