gpt4 book ai didi

python - 以 elif 方式比较 Pandas 数据框中的字符串

转载 作者:行者123 更新时间:2023-11-30 22:39:19 25 4
gpt4 key购买 nike

我试图将数据框中的字符串与特定警告进行比较,即如果其中一个字符串已经等于“Missing”,则该值将被保留。

例如,如果我的 df 看起来像

df =pd.DataFrame({'Col1':['Dog','Cat','Missing'],
'Col2':['Dog', 'Monkey', 'Rat']})

我问 Col1 是否在 Col2 中,结果是

True, False, Missing

以下代码允许比较每行的值(为我提供“true”和“false”值),但我一直在努力解决如何合并“Missing”检查

df['result'] = df.apply(lambda row: row[Col1] in row[Col2], axis=1)

也许我应该放弃在这种情况下使用 lambda 函数的想法,并切换到 if/elif/语句,如以下伪代码所示:

if df[df[Col1]] == "Missing":
df['result'] = 'Missing'
elif df[df[Col1]] in df[df[Col2]]:
df['result'] = 'True'
else:
df['result'] = 'False'

感谢您提供的任何帮助。

最佳答案

我认为你可以使用双 numpy.where :

mask1 = df['Col1'] == 'Missing'
mask2 = df.apply(lambda row: row['Col1'] in row['Col2'], axis=1)

df['result'] = np.where(mask1, 'Missing',
np.where(mask2, 'True', 'False'))

print (df)
Col1 Col2 result
0 Dog Dog True
1 Cat Monkey False
2 Missing Rat Missing

关于python - 以 elif 方式比较 Pandas 数据框中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com