1 回答

TA贡献1831条经验 获得超9个赞
在一系列中搜索模式很容易,但我必须使用它apply来查找列是否以另一列的内容结尾。顺便说一句,我不得不稍微更改您的数据,因为除非要忽略空格'...suite101','suite 101'否则不会以结尾。所以我使用了:
d = pd.DataFrame({'street1': ['1000 foo dr', '1001 bar dr', '1002 foo dr suite 101', '1003 bar dr'],
'street2': ['city_a', np.nan, 'suite 101', 'suite 102'],
'city': ['city_a', 'city_b', np.nan, 'city_c']})
print(pd.DataFrame({'Address': np.where(d.street2.str.contains('city', na=True)
| d.apply(lambda x: x.street1.endswith(str(x.street2)), axis = 1),
d.street1,
d.street1.str.cat(d.street2, sep=' '))}))
按预期给出:
Address
0 1000 foo dr
1 1001 bar dr
2 1002 foo dr suite 101
3 1003 bar dr suite 102
添加回答
举报