2015-09-25 241 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好主意。 这工作表示感谢! –