簡體   English   中英

Pandas - 來自 dataframe 的 Select 行基於列中的列表

[英]Pandas - Select rows from a dataframe based on list in a column

這個線程Select rows from a DataFrame based on values in a column in pandas顯示了如果該列包含標量,您如何可以 select 行。 如果我的專欄包含不同長度的列表,我該怎么做?

為簡單起見,假設列表中的值相似。

           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]

使用str

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

制作一個新專欄:

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

然后對列label2執行操作

今天,我處理了一個類似的問題,我需要獲取包含我們要查找的值的行,但數據框的列值是列表格式。

這是我想出的解決方案。

fetched_rows = df.loc [ df['column_name'].map( lambda x: True if check_element in x else False) == True ]

其中 column_name ---> 我們需要查看的列名

check_element ---> 我們用來檢查它是否存在的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM