簡體   English   中英

根據另一列中的值返回唯一的值列表

[英]Return the unique list of values based on values in another column

我有一個包含兩列字母數字的表,並且希望在“術語”列中出現字符串“錯誤”時從“術語名稱”列返回所有唯一值:

在此處輸入圖像描述

我想出的代碼如下,但它僅在“術語”列中只有一個值“錯誤”實例時才有效:

import pandas as pd
import re
df = pd.read_excel('Test.xlsx')
print(df.loc[df['Terms'].str.contains('Error', flags = re.IGNORECASE, na=False), 'Terms Name'].item())

當值“錯誤”多於一個時(如我上面的 df 中),我收到錯誤消息:“ValueError:只能將大小為 1 的數組轉換為 Python 標量”,我只是不能讓它返回正確值:“20th NM”和“NET 45”。

先感謝您!

Series.unique與您的過濾條件一起使用:

print(list(df['Terms Name'].loc[df['Terms'].str.contains('Error', flags = re.IGNORECASE, na=False)].unique()))

Output:

['20th NM', 'Net 45']

細節:

  • df['Terms Name'].loc[...]幫助過濾條件
  • df['Terms'].str.contains('Error', flags = re.IGNORECASE, na=False)保留您的過濾條件
  • ....unique()使用Series.unique()調用df['Terms Name']的過濾子集以獲取唯一值的 ndarray
  • list(...)將生成的 ndarray 轉換為 Python 列表

如果您只需要打印結果而不是想要獲得唯一值的 Python 列表,則可以使用list(...)跳過最后一步

暫無
暫無

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

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