簡體   English   中英

如何創建一個 function 掃描多個 dataframe 列以獲取值。 如果找到這些值中的任何一個,則新列將返回給定的數字

[英]How do i create a function that scans multiple dataframe columns for a value. if any of those values are found the new column returns a given figure

我正在嘗試構建一個工作表,其中我有一個新列('column x')。

該列將通過掃描三個已經存在的列(a、b、c)來填充。

如果在索引圖的任何這些列中找到給定值,則新列將顯示為“失敗”,否則它將顯示為“通過”。

當我嘗試掃描單列時,我的代碼有效

例子:

df["Column x"] = df["Column a"].apply(lambda val: "Fail" if val == 'T' else "Pass")

當我嘗試不止一個時,無論我如何調整它都會失敗。

df['Column x'] = df['Column a'].any(lambda val: 'Fail' if val == 0 else 'Pass') or df['Column b'].apply(lambda val: 'Fail' if val == 'False' else 'Pass')

任何建議都非常有幫助

使用np.where檢查下面的代碼,檢查J是否存在於任何列中,而不是False否則為True

import pandas as pd
import numpy as np

df = pd.DataFrame({'col1':['A','B','C'],'col2':['E','F','G'],'col3':['H','I','J']})

df['column_x'] = np.where(((df['col1']=='J')|(df['col2']=='J')|(df['col3']=='J')),'Fail','Pass')

df

Output:

在此處輸入圖像描述

這是一個全 pandas 代碼:

import pandas as pd
df = pd.DataFrame({
    'col1':['A','B','C'],
    'col2':['E','F','G'],
    'col3':['H','I','J']}
)

df["C"] = pd.Series(
    df['col1'].apply(lambda a: 0 if a == 'C' else 1) &
    df['col2'].apply(lambda a: 0 if a == 'C' else 1) &
    df['col3'].apply(lambda a: 0 if a == 'C' else 1)
).apply(lambda x: "Pass" if x else 'Fail')
print(df)

output

    col1 col2 col3     C
0    A    E    H     Pass
1    B    F    I     Pass
2    C    G    J     Fail

暫無
暫無

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

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