我试图根据另一列值在dataframe ( 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
我认为我必须在apply()
中使用apply()
,但是我无法在传递给apply
的函数中找到一种修改行和同时使用isin
的方法。
发布于 2016-11-22 08:36:16
使用str.endswith
检查以给定字符结尾的字符串,并创建布尔掩码。然后,在掩码生成输入到isin
方法之后,移除最后三个字符。
mask = df['one'].str.endswith(('-01','-02'))
df['two'] = df['one'].isin(df[mask].squeeze().str[:-3])
df
https://stackoverflow.com/questions/40746907
复制相似问题