[英]Select rows with specific values in columns and include rows with NaN in pandas dataframe
[英]Pandas DataFrame indexing, Selecting rows with specific columns that are NaN values
考虑到我有一个熊猫数据框作为以下示例(实际数据集中有更多行/列):
| t1 | val1 | val2 | val3 | val4
------------------------------------
0| 1 | 1 | NaN | NaN | NaN
1| 2 | 12 | 5 | NaN | 4
2| 3 | 104 | 6 | NaN | NaN
3| 4 | -1 | 7 | 6 | NaN
4| 1 | -3 | 8 | 7 | 10
我只想提取其中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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.