2015-09-25 240 views
1

我有一個熊貓數據框,它是通過將現有數據框 與每個鍵的鍵值和數據列表進行映射而創建的。熊貓:如何選擇任何2列中的[]選擇行

數據幀我有在末端是類似於(但具有1500行):

N A     B   C     D 
0 1 [value1, value2] [value8] []     [value18] 
1 2 [value3]   [value9] [value13, value14] [] 
2 3 [value4, value5] [value10] [value15]   [value19] 
3 4 [value6]   [value11] [value16]   [value20] 
4 5 [value7]   [value12] [value17]   [] 

某些行中包含有顯然更視爲空列表比楠一個或多個[]值或'[]'字符串。 當列C或D中缺少[]值時,是否可以獲取行?

預期輸出:

N A     B   C     D 
0 1 [value1, value2] [value8] []     [value18] 
1 2 [value3]   [value9] [value13, value14] [] 
4 5 [value7]   [value12] [value17]   [] 

我試圖 DF2 = DF1 [pd.isnull(DF1).ANY(軸= 1)] 沒有成功

任何幫助,將不勝感激

回答

1

這樣的事情呢。只需得到列中每個列表的len,然後選擇len是0的位置。

df1['c_len'] = df1.c.apply(len) 
df1['d_len'] = df1.d.apply(len) 
df1[(df1.c_len == 0) | (df1.d_len == 0)] 
+0

Ho好主意。 這工作表示感謝! –