我有一个长熊猫数据集,其中包括一个名为'id'
的列和另一个名为'species'
的列。我必须根据'id'
列的特定值对'species'
列执行更改
例如,如果'id'
是'5555555'
(作为字符串),那么我希望'species'
值将其当前值'dove'
(也是字符串)更改为'hummingbird'
。到目前为止,我一直在使用以下方法:
df.loc[df["id"] == '5555555', "species"] = 'hummingbird'
以下是简短的示例数据帧:
import pandas as pd
#Starting dataset
d = {'id': ['11111111', '22222222', '33333333', '44444444', '55555555', '66666666', '77777777', '88888888'], 'species': ['dove', 'dove', 'dove', 'hummingbird', 'hummingbird', 'dove', 'hummingbird', 'dove']}
df = pd.DataFrame(data=d)
df
id species
0 11111111 dove
1 22222222 dove #wants to replace
2 33333333 dove #wants to replace
3 44444444 hummingbird
4 55555555 hummingbird
5 66666666 dove
6 77777777 hummingbird
7 88888888 dove #wants to replace
#Expected outcome
d = {'id': ['11111111', '22222222', '33333333', '44444444', '55555555', '66666666', '77777777', '88888888'], 'species': ['dove', 'hummingbird', 'hummingbird', 'hummingbird', 'hummingbird', 'dove', 'hummingbird', 'hummingbird']}
df = pd.DataFrame(data=d)
df
id species
0 11111111 dove
1 22222222 hummingbird #replaced
2 33333333 hummingbird #replaced
3 44444444 hummingbird
4 55555555 hummingbird
5 66666666 dove
6 77777777 hummingbird
7 88888888 hummingbird #replaced
对于少量的行来说这是可以的,但是我必须这样做,大约1000行,每个行都有一个'id'
,所以我想可能有一个循环,我可以将'id'
的列表提供给它,但是我真的不知道如何开始
提前谢谢
感谢Scott Boston为我指出了正确的方向,让我可以提出更好的问题
使用
isin
相关问题 更多 >
编程相关推荐