当前位置: 首页 > 面试题库 >

pandas.Series.apply中的访问索引

柳俊彦
2023-03-14
问题内容

可以说我有一个MultiIndex系列s

>>> s
     values
a b
1 2  0.1 
3 6  0.3
4 4  0.7

我想应用一个使用行索引的函数:

def f(x):
   # conditions or computations using the indexes
   if x.index[0] and ...: 
   other = sum(x.index) + ...
   return something

我该怎么做s.apply(f)?进行此类操作的推荐方法是什么?我希望获得一个新的Series,并将此函数所产生的值应用于每行并具有相同的MultiIndex。


问题答案:

我认为无法apply访问该索引;它将每行视为一个numpy对象,而不是一个Series,如您所见:

In [27]: s.apply(lambda x: type(x))
Out[27]: 
a  b
1  2    <type 'numpy.float64'>
3  6    <type 'numpy.float64'>
4  4    <type 'numpy.float64'>

要解决此限制,请将索引提升为列,应用函数,然后使用原始索引重新创建Series。

Series(s.reset_index().apply(f, axis=1).values, index=s.index)

可能使用其他方法s.get_level_values,在我看来,这通常很难看,或者s.iterrows()可能更慢-可能取决于具体f操作。



 类似资料:
  • 我已经创建了一个新的用户组,并授予读取、写入、删除类型和属性的权限。在这里,我观察到我无法通过该用户的backoffice访问方面搜索配置。我不想将“admingroup”分配给用户。是否有任何类型或属性,我可以将访问权限分配给该用户,以便用户可以运行索引。 下面是我用来分配角色的弹劾:-

  • 问题内容: 如何在如下所示的循环中访问索引? 我想得到以下输出: 当我使用循环遍历它时,如何访问循环索引(在这种情况下为到)? 问题答案: 使用其他状态变量,例如索引变量(通常在或等语言中使用),被认为是非的。 更好的选择是使用 中都提供的内置函数:

  • 问题内容: 我试图在把手模板内的数组中指定项的索引: 使用这个: 如果上述方法不可行,我将如何编写一个可以访问数组中特殊项目的助手? 问题答案: 尝试这个:

  • 问题内容: 可以说我有以下代码: 有没有一种方法可以以编号方式访问项目,例如: 问题答案: 如果是,则可以通过获取(key,value)对的元组的索引来轻松访问元素,如下所示 Python 3.X的注意事项 将返回一个可迭代的dict视图对象而不是一个列表。我们需要将调用包装到一个列表上,以使建立索引成为可能

  • 问题内容: 在网上看到有关Java编程练习的解释时,我遇到了以下代码: 我了解代码的功能,但是我不知道它如何使用char索引(即count [c],其中c是char)访问数组元素。我以为索引只能是整数? 问题答案: 字符(16位)是整数(32位),反之亦然。这是一个隐式转换,特别是char到unsigned int。在这种情况下,索引可能是代表此字符的ASCII码(对于ASCII字符)。

  • 问题内容: 我正在尝试通过其索引访问dict_key的元素: 我想得到。 与: 我怎样才能做到这一点? 问题答案: 而是调用字典: 在Python 3中,该方法返回一个字典视图对象,它充当一个集合。直接遍历字典还会产生键,因此将字典转换为列表会得到所有键的列表: