Select 行使用 pandas 单元格中列表的长度

Select row using the length of list in pandas cell

我有一个 table df

    a   b    c
1   x   y   [x]

2   x   z   [c,d]

3   x   t   [e,f,g]

只是想知道如何 select 使用 c 列的长度的行

比如

df.loc[len(df.c) >1]

我知道这是不对的....正确的应该是什么?

您可以使用

df.loc[np.array(list(map(len,df.c.values)))>1]

试试这个:

df[df.c.map(len)>1]

申请:

df[df.c.apply(lambda x: len(x) > 1)]

您还可以创建第四列,其中包含“c”列中每个列表的长度。然后筛选出新列中的条目大于 1 的行。

df["length"] = df["c"].apply(lambda x: len(x) > 1)
df = df.loc[df["length"], :].drop(["length"], axis=1)