Python 创建数据帧索引,选择具有特定列且为NaN值的行
考虑到我有一个pandas dataframe作为以下示例(实际数据集中有更多的行/列): 我只想提取其中t1==1和val2、val3和val4是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
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个标准检查所有行