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
添加回答
舉報