熊猫-根据列中的列表从数据框中选择行

时间:2019-03-11 21:31:01

标签: python pandas

此线程Select rows from a DataFrame based on values in a column in pandas显示了如果列包含标量,则如何选择行。如果我的栏包含长度不一的清单,该怎么办?

为简单起见,假设列表中的值相似。

           label
0          [1]
1          [1]
2          [1]
3          [1]
4          [1]
5          [1]
6          [1]
7          [1]
8          [1]
9          [1]
10         [1]
11         [1]
12         [1]
13         [1]
14         [1]
15         [1]
16         [0,0,0]
17         [1]
18         [1]
19         [1]
20         [1]
21         [1]
22         [1]
23         [1]
24         [1]
25         [1]
26         [1]
27      [1, 1]
28      [1, 1]
29      [0, 0]

我尝试了以下无效的方法。我试图检查列表的最后一个元素是否等效于标量。

df_pos = df[df["label"][-1] == 1]

使用tolist()[-1]仅返回最后一行。

df_pos = df[df["label"].tolist()[-1] == 1]

2 个答案:

答案 0 :(得分:3)

使用str

df_pos = df[df["label"].str[-1] == 1]

答案 1 :(得分:0)

新建一列:

df['label2'] = df['label'].apply(lambda x: x[0])

然后对列label2进行操作