簡體   English   中英

Pandas DataFrame索引,選擇具有特定列(即NaN值)的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM