Выберите строку, используя длину списка в ячейке панд

У меня есть таблица дф

    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]

Я знаю, что это не правильно.... что должно быть правильным?

2 ответа

Решение

Вы можете использовать

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)
Другие вопросы по тегам