相关疑难解决方法(0)

在pandas系列中查找元素的索引

我知道这是一个非常基本的问题,但由于某种原因,我找不到答案.如何在python pandas中获取Series的某个元素的索引?(第一次出现就足够了)

即,我想要像:

import pandas as pd
myseries = pd.Series([1,4,0,7,5], index=[0,1,2,3,4])
print myseries.find(7) # should output 3
Run Code Online (Sandbox Code Playgroud)

当然,可以用循环定义这样的方法:

def find(s, el):
    for i in s.index:
        if s[i] == el: 
            return i
    return None

print find(myseries, 7)
Run Code Online (Sandbox Code Playgroud)

但我认为应该有更好的方法.在那儿?

python pandas

126
推荐指数
7
解决办法
27万
查看次数

在平局的情况下,Python选择哪个最大值?

max()在Python中使用函数来查找列表中的最大值(或元组,字典等)时,最大值是一个平局,Python选择哪一个?是随机的吗?

例如,如果一个具有元组列表并且一个key=基于元组的第一个元素选择最大值(使用a )但是存在不同的第二个元素,则这是相关的.Python如何选择哪一个作为最大值?

我在使用Python v2.6.

python max

70
推荐指数
3
解决办法
2万
查看次数

按最大值获取dict键

我试图得到dict键,它的值在所有dict的值中都是max.我找到了两种方法,都不够优雅.

d= {'a':2,'b':5,'c':3}
# 1st way
print [k for k in d.keys() if d[k] == max(d.values())][0]
# 2nd way
print Counter(d).most_common(1)[0][0]
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

python counter dictionary

24
推荐指数
1
解决办法
5万
查看次数

在Python中实现argmax

如何在Python中实现argmax?它应该尽可能高效,因此它应该与iterables一起使用.

可以实施的三种方式:

  • 给定可迭代的对返回对应于最大值的键
  • 给定一个可迭代的值返回最大值的索引
  • 给定一个可重复的键和一个函数f,返回最大的键f(key)

python python-itertools

23
推荐指数
5
解决办法
1万
查看次数

使用Python的max返回两个同样大的值

我正在使用Python的max函数来查找被调用的字典中的最大整数count,以及相应的键(不太确定我是否正确地说它;我的代码可能比我解释它更好地解释了自己).字典count是沿着的{'a': 100, 'b': 210},等等.

number = count[max(count.items(), key=operator.itemgetter(1))[0]]
highest = max(count, key=count.get)
Run Code Online (Sandbox Code Playgroud)

如果那里有两个相同的最大值,我该怎么办?如果我有{'a': 120, 'b': 120, 'c': 100},这只会找到第一个,ab不是两个.

python dictionary max

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

在字典中查找最高值

我是编程新手,目前参加CSC 110课程.我们的任务是创建一组函数,使用给定的一些数据执行各种操作.我已经把所有数据都放到了字典中,但是我在获取我想要的数据时遇到了一些麻烦.

这是我的问题:

我有一个字典,存储了一堆国家,后面是一个包含人口和GDP的列表.格式化这样的东西

{'country': [population, GDP], ...}
Run Code Online (Sandbox Code Playgroud)

我的任务是遍历这个并找到人口或GDP最高的国家然后打印:

'The country with the highest population is ' + highCountry+\
    ' with a population of ' + format(highPop, ',.0f')+'.')
Run Code Online (Sandbox Code Playgroud)

为了做到这一点,我写了这个函数(这个函数专门用于最高人口,但它们看起来都是一样的).

def highestPop(worldInfo):
        highPop = worldInfo[next(iter(worldInfo))][0] #Grabs first countries Population
        highCountry = next(iter(worldInfo))#Grabs first country in worldInfo

        for k,v in worldInfo.items():
                if v[0] > highPop:
                    highPop = v[0]
                    highCountry = k

        return highPop,highCountry
Run Code Online (Sandbox Code Playgroud)

虽然这对我有用,但我认为有一种更简单的方法可以做到这一点.另外,我不是100%确定如何[next(iter(worldInfo))]运作.这只是抓住它看到的第一个值吗?

感谢您的帮助!

编辑:对不起我想我不清楚.我需要通过国家人口以及国家名称.所以我可以在我的主要功能中打印它们.

python computer-science dictionary

13
推荐指数
3
解决办法
1364
查看次数

规范字典值

我有一个(非常大)字典,它有数字值,例如在表单中data = {'a': 0.2, 'b': 0.3, ...}.规范化这些值的最佳方法是什么(编辑:确保值总和为1)?

我特别感兴趣的是:对于某些数据集大小,它是否有利于使用例如numpy而不是dict理解?

我正在使用python 2.7.

python python-2.7

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

用pythonic方式打印字典中最大值的键

给定一个字典d,其中键值对由作为键的字符串和作为值的整数组成,我想打印值为最大值的键字符串.

当然我可以循环d.items(),存储最大值和它的键,并在for循环后输出后者.但是,只使用max像这样的函数构造,是否有更"pythonic"的方式?

print max(...)
Run Code Online (Sandbox Code Playgroud)

python max

8
推荐指数
1
解决办法
9404
查看次数

使用键在dict中打印最高值

我的字面就像,

{'A':4,'B':10,'C':0,'D':87}
Run Code Online (Sandbox Code Playgroud)

我想用键和最小值找到最大值.

输出就像,

最大值:87,键是D.

min:0,key为C.

我知道如何从dict获取最小值和最大值.有没有办法在一个陈述中获得价值和关键?

max([i for i in dic.values()]) 
min([i for i in dic.values()])
Run Code Online (Sandbox Code Playgroud)

python dictionary python-2.7

8
推荐指数
3
解决办法
8万
查看次数

在字典中查找最大值

可能重复:
获取字典中最大值的键?

假设我有一个由整数键和整数值组成的字典.我想找到具有最高对应值的整数键.有没有内置的方法来做这样的事情或我需要实现某种合并/排序算法?

python

7
推荐指数
2
解决办法
6万
查看次数