gpt4 book ai didi

python - 使用 Pandas 检查两列中的任何一列中是否存在值

转载 作者:太空宇宙 更新时间:2023-11-04 11:07:02 27 4
gpt4 key购买 nike

我是 Pandas 的新手。

我正在使用 .isin() 方法构建一个包含 TrueFalse 值的数据框。

我的数据框中有 7 列,我检查每列中是否存在与左侧列相比的值。使用 .isin() 方法效果很好。

问题是我需要检查 A 列或 B 列中是否存在值,以便在我的新数据框 C 列上放置 TrueFalse 值。

例如:

df_1

A     B     C     D
1 a 1 a
a b a
c c c c
d 1 d

我正在检查 A 列中的值 1 是否存在于整个 B、C、D 列中,以及它在哪里我将 True 语句传递给该行中的那一行找到匹配项的列。

我正在使用掩码构建新的数据框:

mask_gclid_cloudflare_request_url = final_data.gclid.isin(final_data['Gclid from request url'])
mask_gclid_cloudflare_cookie = final_data.gclid.isin(final_data['Gclid from cookie'])

finalized_export.loc[~mask_gclid_cloudflare_request_url, ['Date from Cloudflare']] = ''
finalized_export.loc[~mask_gclid_cloudflare_cookie, ['Date from Cloudflare']] = ''

我将如何使用 . isin() 方法?

谢谢你的建议

最佳答案

如果希望输出中的 bool 数据帧更简单,则按值比较而不使用 isin:

#if 1 is string use '1'
#df1 = df[['A','B']].eq('1')
df1 = df[['A','B']].eq(1)

df1 = (df[['A','B']] == 1)

DataFrame.isin只传递一个带有1的元素列表:

df1 = df[['A','B']].isin([1])

print (df1)
A B
0 True False
1 False False
2 False False
3 False True

面具(系列)使用一一二法DataFrame.any用于测试每行是否至少有一个 True:

print (df1.any(axis=1))
0 True
1 False
2 False
3 True
dtype: bool

DataFrame.all用于测试每行是否全部为真:

print (df1.all(axis=1))
0 False
1 False
2 False
3 False
dtype: bool

关于python - 使用 Pandas 检查两列中的任何一列中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59190225/

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