我知道这是一个非常基本的问题,但由于某种原因,我找不到答案.如何在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)
但我认为应该有更好的方法.在那儿?
当max()在Python中使用函数来查找列表中的最大值(或元组,字典等)时,最大值是一个平局,Python选择哪一个?是随机的吗?
例如,如果一个具有元组列表并且一个key=基于元组的第一个元素选择最大值(使用a )但是存在不同的第二个元素,则这是相关的.Python如何选择哪一个作为最大值?
我在使用Python v2.6.
我试图得到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中实现argmax?它应该尽可能高效,因此它应该与iterables一起使用.
可以实施的三种方式:
f,返回最大的键f(key)我正在使用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},这只会找到第一个,a而b不是两个.
我是编程新手,目前参加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))]运作.这只是抓住它看到的第一个值吗?
感谢您的帮助!
编辑:对不起我想我不清楚.我需要通过国家人口以及国家名称.所以我可以在我的主要功能中打印它们.
我有一个(非常大)字典,它有数字值,例如在表单中data = {'a': 0.2, 'b': 0.3, ...}.规范化这些值的最佳方法是什么(编辑:确保值总和为1)?
我特别感兴趣的是:对于某些数据集大小,它是否有利于使用例如numpy而不是dict理解?
我正在使用python 2.7.
给定一个字典d,其中键值对由作为键的字符串和作为值的整数组成,我想打印值为最大值的键字符串.
当然我可以循环d.items(),存储最大值和它的键,并在for循环后输出后者.但是,只使用max像这样的函数构造,是否有更"pythonic"的方式?
print max(...)
Run Code Online (Sandbox Code Playgroud) 我的字面就像,
{'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) 可能重复:
获取字典中最大值的键?
假设我有一个由整数键和整数值组成的字典.我想找到具有最高对应值的整数键.有没有内置的方法来做这样的事情或我需要实现某种合并/排序算法?