根据Frozenset的长度过滤熊猫数据帧

时间:2019-03-08 10:39:59

标签: python pandas

我有一个pandas数据框,其值作为Frozensets

df

foo
frozenset('A')
frozenset('B','C') and so on

代码:

df[len(df.foo)>1]

上面的代码应该给我至少包含两个元素的行,对吗?如果没有,那怎么办?

1 个答案:

答案 0 :(得分:0)

您可以将Series.str.len与可迭代对象配合使用:

df = pd.DataFrame({'foo':[frozenset('A'),frozenset(['B','C'])]})
print (df)
      foo
0     (A)
1  (C, B)

df1 = df[df['foo'].str.len() > 1]
#another solution with list comprehension
#df1 = df[[len(x) > 1 for x in df['foo']]]
print (df1)
      foo
1  (C, B)