Python 创建数据帧索引,选择具有特定列且为NaN值的行

Python 创建数据帧索引,选择具有特定列且为NaN值的行,python,pandas,dataframe,Python,Pandas,Dataframe,考虑到我有一个pandas dataframe作为以下示例(实际数据集中有更多的行/列): 我只想提取其中t1==1和val2、val3和val4是NaN值的行,并且只提取一些列 例如,在上面的数据框中,我只想得到第一行 到目前为止,我已经尝试了以下内容以及其中的一些变体: 我已经为我感兴趣的列定义了标签列表: labels = [ 't1', 'val2', 'val3', 'val4'] 然后,我运行以下代码来获取t1==1的所有值,并且只获取指定的列 df2 = df.loc[df.t1

考虑到我有一个pandas dataframe作为以下示例(实际数据集中有更多的行/列):

我只想提取其中t1==1和val2、val3和val4是NaN值的行,并且只提取一些列

例如,在上面的数据框中,我只想得到第一行

到目前为止,我已经尝试了以下内容以及其中的一些变体:

我已经为我感兴趣的列定义了标签列表:

labels = [ 't1', 'val2', 'val3', 'val4']
然后,我运行以下代码来获取t1==1的所有值,并且只获取指定的列

df2 = df.loc[df.t1 == 1, labels]
之后,我尝试只获取val2、val3和val4同时为NaN的行。 我已经编写了以下代码,但似乎不起作用:

df3 = df2.loc[df2[labels].isnull() == True, labels]
但它返回以下错误:

ValueError: Cannot index with multidimensional key
你知道怎么了吗?还是另一种得到我想要的结果的方式


提前感谢。

您应该使用
all

df2[df2[['val2','val3','val4']].isnull().all(1)]
Out[544]: 
   t1  val2  val3  val4
0   1   NaN   NaN   NaN

您应该使用
all

df2[df2[['val2','val3','val4']].isnull().all(1)]
Out[544]: 
   t1  val2  val3  val4
0   1   NaN   NaN   NaN

您确实是正确的,您是否愿意解释带参数1的all代表什么?@Davelis4 all表示全部为真,axis=1的1个标准检查所有行您确实是正确的,您是否愿意解释带参数1的all代表什么?@Davelis4 all表示全部为真,axis=1的1个标准检查所有行