【发布时间】:2018-08-14 00:43:32
【问题描述】:
如果找到某些字母(虽然不是确切的单词),我会尝试返回一个特定的值。开始于:
data = {'ANIMAL':['LION', 'BLACK BEAR', 'BROWN BEAR']}
df = pd.DataFrame(data)
df
ANIMAL
0 LION
1 BLACK BEAR
2 BROWN BEAR
一开始,当找到 'BEAR' 时,Python 会正确返回 '30'。
df['FOOD PER DAY (KG)'] = df['ANIMAL'].str.contains('BEAR')
df['FOOD PER DAY (KG)'] = df['FOOD PER DAY (KG)'].map({True: '30', False: ''})
df
ANIMAL FOOD PER DAY (KG)
0 LION
1 BLACK BEAR 30
2 BROWN BEAR 30
不幸的是,当找到 'LION' 时,False:'' 会覆盖之前确定的 '30'。
df['FOOD PER DAY (KG)'] = df['ANIMAL'].str.contains('LION')
df['FOOD PER DAY (KG)'] = df['FOOD PER DAY (KG)'].map({True: '20', False: ''})
df
ANIMAL FOOD PER DAY (KG)
0 LION 20
1 BLACK BEAR
2 BROWN BEAR
有没有办法让这个返回:
ANIMAL FOOD PER DAY (KG)
0 LION 20
1 BLACK BEAR 30
2 BROWN BEAR 30
谢谢。仅供参考,这实际上不适用于动物。
【问题讨论】:
标签: string python-2.7 contains