繁体   English   中英

如果DF中存在对一列的修改值,则在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM