此线程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]
答案 0 :(得分:3)
使用str
df_pos = df[df["label"].str[-1] == 1]
答案 1 :(得分:0)
新建一列:
df['label2'] = df['label'].apply(lambda x: x[0])
然后对列label2进行操作