小编Eri*_*ric的帖子

Java如何根据HashMap中的值返回前10个项目

所以我是Java的新手,因此我正在通过练习,将我的一个Python程序转换为Java.

我遇到了一个问题,我试图复制行为,从python下面将只返回排序的键(按值),而不是值:

popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)
Run Code Online (Sandbox Code Playgroud)

在Java中,我做了一些研究,还没有找到一个简单的样本用于n00b,例如我自己或类似的方法.我找到了使用Guava进行排序的示例,但排序似乎返回按键排序的HashMap.

除了上述之外,我在Java中没有找到的关于Python的其他好处之一是能够轻松返回已排序值的子集.在Python中,我可以简单地执行以下操作:

print "Top 10 Numbers: %s" % popular_numbers[:10]
Run Code Online (Sandbox Code Playgroud)

在此示例中,number_dict是键值对的字典,其中键表示数字1..100,值是数字(键)出现的次数:

for n in numbers:
 if not n == '':
   number_dict[n] += 1
Run Code Online (Sandbox Code Playgroud)

最终结果将是这样的:

十大数字:['27','11','5','8','16','25','1','24','32','20']

为了澄清,在Java中我成功创建了一个HashMap,我已经成功检查了数字并增加了键值对的值.我现在陷入了排序并根据值返回前10个数字(键).

java sorting

13
推荐指数
2
解决办法
1万
查看次数

Pandas DataFrame:如何通过多值列将一行分成多行?

我有一个数据框,显示如下:

   issue_key date     pkey          component              case_count
0  1060  2018-03-08  PROJ  console,configuration,management    8   
1  1464  2018-04-24  PROJ2 protocol                            1   
2  611   2017-03-31  PROJ  None                                2
3  2057  2018-10-30  PROJ  ha, console                         0
Run Code Online (Sandbox Code Playgroud)

我需要将组件列中具有多个值的行拆分为每个组件一行。

完成后,数据框应如下所示:

   issue_key date     pkey          component              case_count
0  1060  2018-03-08  PROJ  console                           8
1  1060  2018-03-08  PROJ  configuration                     8
2  1060  2018-03-08  PROJ  management                        8   
3  1464  2018-04-24  PROJ2 protocol                          1   
4  611   2017-03-31  PROJ  None                              2
5  2057  2018-10-30  PROJ  ha                                0
6  2057  2018-10-30  PROJ  console                           0 …
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
1161
查看次数

标签 统计

java ×1

pandas ×1

python ×1

sorting ×1