如果值在另一列中,我需要从列表中的值创建一个新列 - 请参见下面的示例:
state_us = ['Ohio', 'California']
fake_df = pd.DataFrame(np.array(['Route 66, Ohio, US', 'California US']), columns = ['Address'])
# Address
# 0 Route 66, Ohio, US
# 1 California US
results_df = pd.DataFrame({'Address': ['Route 66, Ohio, US', 'California US'], 'State': ['Ohio', 'California']})
# Address State
# 0 Route 66, Ohio, US Ohio
# 1 California US California
这是我不太成功的尝试
fake_df['State'] = fake_df['Address'].apply(lambda x: element for element in state_us if element in x else np.nan)
用于str.extract
从地址中提取状态模式:
pattern = '|'.join(state_us)
fake_df['State'] = fake_df['Address'].str.extract(rf'({pattern})')
# Address State
# 0 Route 66, Ohio, US Ohio
# 1 California US California
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句