如何检查 Pandas 行是否包含空集

Zub*_*ubo 3 python boolean pandas

我想检查 Pandas Dataframe 行的特定列中是否包含空集,即

d = {'col1': [1, 2], 'col2': [3, {}]}
df2 = pd.DataFrame(data=d)


    col1    col2
0   1       3
1   2       {}
Run Code Online (Sandbox Code Playgroud)

进而

df2['col_2_contains_empty_set'] = ? #  how to implement this
Run Code Online (Sandbox Code Playgroud)

应该给

    col1    col2    col_2_contains_empty_set
0   1       3       False
1   2       {}      True
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?做不到

bool(df['col2']) 
Run Code Online (Sandbox Code Playgroud)

或者

df['col2'].bool()
Run Code Online (Sandbox Code Playgroud)

我认为它们Series具有模糊的布尔值。

Sco*_*ton 6

单程:

df2.apply(lambda x: any(x.values == {}), axis=1)
Run Code Online (Sandbox Code Playgroud)

输出:

0    False
1     True
dtype: bool
Run Code Online (Sandbox Code Playgroud)

或者

df2['c'] = np.max(df2.values == {}, 1).astype(bool)
Run Code Online (Sandbox Code Playgroud)

输出:

   col1 col2      c
0     1    3  False
1     2   {}   True
Run Code Online (Sandbox Code Playgroud)