[英]Pandas: Check if value in one df exists in any column of another DF
[英]Add column in DF if value modified of one column exists in DF
我正在尝试根据另一列值以及该值是否在我的DF中在数据框(DF)中添加一列。
例:
>>> d = { 'one' : pd.Series(['aa', 'bb', 'cc', 'aa-01', 'bb-02', 'dd']) }
>>> df = pd.DataFrame(d)
>>> df
one
0 aa
1 bb
2 cc
3 aa-01
4 bb-02
5 dd
如果我可以找到其他元素,并将当前元素附加在-01或-02后面,请添加以下列。
示例:在此数据框中,只有元素“ aa”和“ bb”具有附加值的元素,即“ aa-01”和“ bb-02”,因此只有“ aa”和“ bb”具有附加值新列中的值为True
预期结果:
>>> expected_df
one two
0 aa True
1 bb True
2 cc False
3 aa-01 False
4 bb-02 False
5 dd False
我相信必须将isin()
与apply()
,但是我无法找出一种方法来修改行并在作为参数传递给apply
的函数中同时使用isin
。
使用str.endswith
检查以给定字符结尾的字符串,并创建一个布尔掩码。 接下来,在将掩码生成输入给isin
方法之后,删除最后三个字符。
mask = df['one'].str.endswith(('-01','-02'))
df['two'] = df['one'].isin(df[mask].squeeze().str[:-3])
df
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.