【发布时间】:2018-05-23 01:22:35
【问题描述】:
我有一张桌子 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]
我知道这是不对的......应该是正确的?
【问题讨论】:
标签: python pandas list pandas-loc
我有一张桌子 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]
我知道这是不对的......应该是正确的?
【问题讨论】:
标签: python pandas list pandas-loc
您还可以创建第四列,其中包含“c”列中每个列表的长度。然后过滤掉新列中的条目大于 1 的行。
df["length"] = df["c"].apply(lambda x: len(x) > 1)
df = df.loc[df["length"], :].drop(["length"], axis=1)
【讨论】:
应用:
df[df.c.apply(lambda x: len(x) > 1)]
【讨论】:
试试这个:
df[df.c.map(len)>1]
【讨论】:
df[df['class'].map(len) >1 ]
你可以使用
df.loc[np.array(list(map(len,df.c.values)))>1]
【讨论】: