如果有一個資料框并且我想回傳一列中的值,如果我在另一列中找到一個關鍵字。所以下面如果我搜索apple我希望輸出是[a,b]
像這樣:
names words
a apple
b apple
c pear
我想要一個串列:
[a,b]
我已經找到了使用 回傳布林值的方法str.contains,但不確定如何從同一行的另一列中獲取該值,這將為我提供名稱。一定有一個帖子我找不到,如果有人可以指引我去那里。
uj5u.com熱心網友回復:
你可以做
list(df[df['words'].str.contains('apple', na=False)]['names'])
導致
['a', 'b']
df['words'].str.contains('apple', na=False)為條件構建一個布爾熊貓系列,并處理列中最終的缺失值。- 上一行產生的系列用于過濾原始資料幀 df。
- 在上一行產生的資料框中,選擇了“名稱”列。
- 在上一行產生的資料框中,該列是 cas 到一個串列。
完整代碼:
import io
import pandas as pd
data = """
names words
a apple
b apple
c pear
"""
df = pd.read_csv(io.StringIO(data), sep='\s ')
lst = list(df[df['words'].str.contains('apple')]['names'])
>>>print(lst)
['a', 'b']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360938.html
上一篇:如何在Pandas中選擇包含一個或多個關鍵字(從現有串列中)的行?
下一篇:如何按組以最小差異過濾資料框
