首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果DF中存在一个列的修改值,则在DF中添加列。

如果DF中存在一个列的修改值,则在DF中添加列。
EN

Stack Overflow用户
提问于 2016-11-22 16:25:10
回答 1查看 71关注 0票数 0

我试图根据另一列值在dataframe ( DF )中添加一列,以及该值是否在我的DF中。

示例:

代码语言:javascript
代码运行次数:0
运行
复制
>>> 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值。

预期结果:

代码语言:javascript
代码运行次数:0
运行
复制
>>> expected_df
     one  two
0     aa  True
1     bb  True
2     cc  False
3  aa-01  False
4  bb-02  False
5     dd  False

我认为我必须在apply()中使用apply(),但是我无法在传递给apply的函数中找到一种修改行和同时使用isin的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 16:36:16

使用str.endswith检查以给定字符结尾的字符串,并创建布尔掩码。然后,在掩码生成输入到isin方法之后,移除最后三个字符。

代码语言:javascript
代码运行次数:0
运行
复制
mask = df['one'].str.endswith(('-01','-02'))
df['two'] = df['one'].isin(df[mask].squeeze().str[:-3])
df

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40746907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档