我有一个dictionary:键是字符串,值是整数.
例:
stats = {'a':1000, 'b':3000, 'c': 100}
Run Code Online (Sandbox Code Playgroud)
我想得到'b'一个答案,因为它是具有更高价值的关键.
我使用具有反向键值元组的中间列表执行以下操作:
inverse = [(value, key) for key, value in stats.items()]
print max(inverse)[1]
Run Code Online (Sandbox Code Playgroud)
这是一个更好(或更优雅)的方法吗?
我在熊猫中有以下DF.
+-------+-------+
| Col_A | Col_B |
+-------+-------+
| 1234 | |
| 6267 | |
| 6364 | |
| 573 | |
| 0 | |
| 838 | |
| 92 | |
| 3221 | |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)
Col_B应该填充True或False值.默认情况下,它是False,但是当第一个0被"看到"时,DF的其余部分应为True.DF有超过10万行.
由于Col_A中的第一个"0"值出现,因此将col_B中的值设置为"True"的最快方法是什么?
+-------+--------+
| Col_A | Col_B |
+-------+--------+
| 1234 | False |
| 6267 | False |
| 6364 | False |
| 573 | False |
| 0 | True |
| 838 | True | …Run Code Online (Sandbox Code Playgroud) 我numpy.argmax用来计算True可以在布尔向量中找到的第一个索引。调用a pandas.Series给我系列索引,而不是元素索引。
我在代码中发现了一个细微的错误,当向量全为False时就会弹出;在这种情况下返回索引0似乎很危险,因为True很可能是True在第一个元素中的情况。此返回值的设计选择是什么?
>>> numpy.argmax([False,False,False])
0
>>> numpy.argmax([True, False, True])
0
>>> s = pandas.Series( [ False, False, False ] , index=[3,6,9] )
>>> numpy.argmax(s)
3
>>> s1 = pandas.Series( [ True, False, False ] , index=[3,6,9] )
>>> numpy.argmax(s1)
3
Run Code Online (Sandbox Code Playgroud) 我有一本字典wrong_names、一个熊猫系列df['name']和一个空列表i_list。
我想遍历df['name'],如果名称在 中wrong_names.keys(),我想将该元素的索引附加df到i_list. 这是我到目前为止所拥有的:
i_list = []
for pup in df['name']:
if pup in wrong_names.keys():
i_list.append(df.index.get_loc(pup))
i_list
Run Code Online (Sandbox Code Playgroud)
我已经看过 .get_loc 文档(pup 是正确的论点吗?),以及这些 SO 问题:
当我要求它做的只是附加pup到 时i_list,代码工作正常,所有迹象表明循环正确识别何时pup也是字典中的键,
i_list = []
for pup in df['name']:
if pup in wrong_names.keys():
i_list.append(pup)
i_list
Run Code Online (Sandbox Code Playgroud)
但我无法获得索引列表,这是我下一步所需要的。提前致谢。