9

我有一张桌子 df

    a   b    c
1   x   y   [x]

2   x   z   [c,d]

3   x   t   [e,f,g]

只是想知道如何使用 c 列的长度来选择行

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

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

4

4 回答 4

26

试试这个:

df[df.c.map(len)>1]
于 2017-12-08T19:40:10.017 回答
3

你可以使用

df.loc[np.array(list(map(len,df.c.values)))>1]
于 2017-12-08T18:46:45.037 回答
0

应用:

df[df.c.apply(lambda x: len(x) > 1)]
于 2020-04-03T12:16:40.453 回答
0

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

df["length"] = df["c"].apply(lambda x: len(x) > 1)
df = df.loc[df["length"], :].drop(["length"], axis=1)
于 2020-08-10T22:09:03.907 回答