我有以下df:
find
我要检查df中是否存在以下值list_columns = ['weight', 'animal', 'age']
list_data = [
[14, '2. D', 10],
[4, 'DOG2-', 2],
[7, 'DOG1-', 3],
[6, 'DOG1', 5]
]
df_animals = pd.DataFrame(columns=list_columns, data=list_data)
df_animals.head()
,如果存在,请用字符串'2. D','DOG2-','DOG1-','dddog'
替换它们
我的尝试:
对于一个值,我可以执行以下操作:
'dog1'
我努力使用列表,但由于符号if 'DOG2-' in df_animals.values:
df_animals['animal'] = df_animals['animal'].replace({'DOG2-':'dog1'})
而无效。告诉他们就可以了。
- .
这只会返回相同的df并显示警告:list = ('2. D','DOG2-','DOG1-','DOG-')
if list in df_animals.values:
df_animals['animal'] = df_animals['animal'].replace({'2. D':'DOG2','DOG2-':'DOG2','DOG1-':'DOG1','DOGG 1':'DOG1'})
我现在正在考虑使用FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
,但是它会用到很多行,并且不知道这是否是最Python的方式。列表似乎很简单,但我想我缺少了一些东西。有人可以帮我解决我的问题吗?