2015-10-08 85 views
-3
執行以下命令

我的表:如何大熊貓

Series Valve Poles Wires 
1  2  3  4 
1  nan z  3 
1  2  3  4 
2  q  e  z 
2  b  4  nan 
3  nan 2  a 
4  1  2  3 
4  nan 4  5 
5  nan 2  1 
5  1  2  nan 

我想申請以下規則:

  • 不顯示或者所有列值都滿足選擇行。
  • 例如:對於列系列,我們有一行包含所有三個值。所以我們應該保留列系列等於1的行,因爲有一行包含所有三個值。
  • 顯示或選擇該列系列中的任何行都不滿足所有三個值。

我想輸出1:滿足上述條件。 所以輸出將是一個數組中的系列3和5。 第二個輸出將是剩餘的。

我是第一次印刷NULL值的行:

Bank_Det_Null = Bank_Det[Bank_Det.isnull().any(axis=1)] 

,然後我節省了系列或LIFNER這裏:

Bank_Det_Null_LIFNR = Bank_Det_Null[['LIFNR']].values.ravel() 

再然後我經過那些值看行:

df_LFBK.loc[df_LFBK.LIFNR.isin(Bank_Det_Null_LIFNR)].head() 

但仍然沒有得到我想要的。

+2

你能告訴你的努力,所以不是代碼寫作服務 – EdChum

+0

請還增加預期輸出。 –

+0

@Fabio我添加了我寫的內容。 –

回答

1

你可以groupby關於「系列」和filter您的病情:

In [121]: 
df.groupby('Series').filter(lambda x: (x.isnull().any(axis=1)).all()) 

Out[121]: 
    Series Valve Poles Wires 
5  3 NaN  2  a 
8  5 NaN  2  1 
9  5  1  2 NaN 
+0

但是@EdChum我想讓Series 5只顯示一次。是否有可能 –

+0

你必須定義哪些以及爲什麼調用'drop_duplicates(subset ='Series')' – EdChum

+0

感謝您的答覆。 –