[英]Checking if value exists in any of two columns with pandas
我是熊猫的新手。
我正在使用.isin()
方法构建一个带有True
和False
值的数据.isin()
。
我的数据框中有 7 列,与左侧的列相比,我检查每列中是否存在值。 使用.isin()
方法效果很好。
问题是我需要检查 A 列或 B 列中是否存在值,以便在我的新数据框列 C 上放置True
或False
值。
例如:
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()
方法检查列 C 中的值1
是否存在于列A
或列B
?
谢谢你的建议
如果想要输出更简单的布尔数据帧是按值比较而不是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
只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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.