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

在pandas数据框中使用NaN查找行的整数索引

贝杜吟
2023-03-14
问题内容

我有一个这样的熊猫DataFrame:

                    a         b
2011-01-01 00:00:00 1.883381  -0.416629
2011-01-01 01:00:00 0.149948  -1.782170
2011-01-01 02:00:00 -0.407604 0.314168
2011-01-01 03:00:00 1.452354  NaN
2011-01-01 04:00:00 -1.224869 -0.947457
2011-01-01 05:00:00 0.498326  0.070416
2011-01-01 06:00:00 0.401665  NaN
2011-01-01 07:00:00 -0.019766 0.533641
2011-01-01 08:00:00 -1.101303 -1.408561
2011-01-01 09:00:00 1.671795  -0.764629

有没有一种有效的方法来查找具有NaN的行的“整数”索引?在这种情况下,所需的输出应为[3, 6]


问题答案:

对于DataFrame df

import numpy as np
index = df['b'].index[df['b'].apply(np.isnan)]

将带给您MultiIndex可以用来索引回的df,例如:

df['a'].ix[index[0]]
>>> 1.452354

对于整数索引:

df_index = df.index.values.tolist()
[df_index.index(i) for i in index]
>>> [3, 6]


 类似资料:
  • 基于单个值/标签的切片 基于一个或多个级别的多个标签的切片 布尔条件和表达式的过滤 哪些方法适用于什么情况 为简单起见的假设: 输入数据表没有重复的索引键 下面的输入数据只有两个级别。(此处所示的大多数解决方案都概括为N个级别) 问题2b 我如何获得级别“二”中对应于“t”和“w”的所有值? 如何从检索横截面,即具有索引特定值的单行?具体来说,如何检索的横截面,由 如何选择与和相对应的两行?

  • 问题内容: 给定一个熊猫数据框,其中包含可能在此处和附近散布的NaN值: 问题: 如何确定哪些列包含NaN值?特别是,我可以获取包含NaN的列名称的列表吗? 问题答案: 更新: 使用熊猫0.22.0 较新的Pandas版本具有新的方法‘DataFrame.isna()’和‘DataFrame.notna()’ 作为列列表: 选择这些列(至少包含一个值): 旧答案: 尝试使用isnull(): 或作

  • 问题内容: 我想获取一列中字符串的频率计数。一方面,这类似于将数据框折叠为仅反映列中的字符串的一组行。我能够通过循环解决此问题,但知道有更好的解决方案。 df示例: 并想出去: 我搜索了很多论坛,但找不到合适的答案。 我假设使用pivot_table方法是正确的方法,但是无法获取正确的参数来折叠没有为输出df提供明显索引的表。 我可以通过使用value_counts()遍历每列并将每个值计数系列附

  • 问题内容: 假设我有两个这种格式的数据框(分别称为和): 我正在寻找在和中具有共同点的所有行的数据框。(即,如果是在两个和,在输出中包括数据帧的两行) 我可以想到很多方法来解决这个问题,但是它们都使我感到笨拙。例如,我们可以在每个数据帧中找到所有唯一的,创建每个的唯一集合,找到它们的交集,使用结果集过滤两个数据帧,然后将两个过滤后的数据帧连接起来。 也许这是最好的方法,但是我知道熊猫很聪明。有没有

  • 问题内容: 我敢肯定有一种明显的方法可以做到这一点,但现在还不能想到任何光滑的东西。 基本上不是引发异常,而是要获取或查看pandas索引中是否存在值。 我现在工作的是以下内容 问题答案: 这应该可以解决问题

  • 问题内容: 例如,假设一个简单的数据框 给定条件,如何检索行的索引值?例如: return ,但是我想得到的只是just 。这在以后的代码中给我带来麻烦。 基于某些条件,我想记录满足该条件的索引,然后在它们之间选择行。 我试过了 获得所需的输出 但我明白了 问题答案: 添加起来更容易-使用一个元素选择list的第一个值: 但是,如果某些值不匹配,则会出现错误,因为第一个值不存在。 解决方案是使用与

  • 问题内容: 我有两个熊猫数据框,一个叫做“ orders”,另一个叫做“ daily_prices”。daily_prices如下: 订单如下: 两个数据帧的索引均为datetime.date。通过使用列表解析来遍历所有订单并在“ daily_prices”数据框中查找特定日期的特定报价,然后将该列表作为列添加到“订单”数据框中的“价格”列。 “订单”数据框。我想使用数组操作而不是循环执行此操作。

  • 问题内容: 摘要:这不起作用: 但是这样做: 为什么? 再生产: 这不起作用: 但是这样做: 链接到笔记本 我的问题是: 为什么只有第二种方式起作用?我似乎看不到选择/索引逻辑的差异。 版本是0.10.0 编辑:这不应该再这样了。从0.11版开始,提供。参见此处:http : //pandas.pydata.org/pandas- docs/stable/indexing.html 问题答案: 大