Python//Pandas-仅选择给定列中具有特定条件的行
我有一个数据帧:Python//Pandas-仅选择给定列中具有特定条件的行,python,pandas,Python,Pandas,我有一个数据帧: df: Estado: Telefone 0 SP (11) 2162-0660 / (11) 2162-0639 1 RJ (11) 3144-4000 2 SC (62) 3878-8150 3 RS (11) 4593-7403 4 PR
df:
Estado: Telefone
0 SP (11) 2162-0660 / (11) 2162-0639
1 RJ (11) 3144-4000
2 SC (62) 3878-8150
3 RS (11) 4593-7403
4 PR (19) 3313-5680 / (19) 3313-6000
5 PE (81) 3316-0586
6 GO (19) 3423-8000
...
[379 rows x 2 columns]
我只想将来自SP、RJ、RS或PR状态('Estado:“
)的项放入新的数据框中
我试过下面这句话:
lista=lista.loc[lista['Estado:'] == ('RJ' or 'SP' or 'PR' or 'RS')]
然而,它给我带来了一个非常有限的列表,所有项目都有Estado:
areRJ
lista:
Estado: Telefone
16 RJ (31) 3263-9664
47 RJ (21) 3575-0600
48 RJ (21) 3221-0000
60 RJ (11) 2118-9500
69 RJ (21) 2677-1077 / (21) 2252-1989
82 RJ (21) 3224-8091
83 RJ NaN
105 RJ (24) 2233-1877 / (24) 2233-1874
140 RJ (31) 3660-9100
143 RJ (21) 2277-2000
175 RJ (21) 3435-1002
216 RJ (21) 9428-1902
218 RJ (21) 2142-1482 / (21) 2142-1480
235 RJ (11) 3468-2098
274 RJ NaN
315 RJ (21) 2676-9196
[16 rows x 2 columns]
有人能帮忙吗
编辑:
我尝试了isin
,但出现错误:
TypeError:isin()接受2个位置参数,但给出了5个
您需要将
[]
添加到,因为参数值
是:
值:设置或列出类似值
要测试的值的顺序。传入单个字符串将引发TypeError。相反,将单个字符串转换为一个元素的列表
TypeError:isin()接受2个位置参数,但给出了5个
使用-
lista=lista[lista['Estado:'].isin(['RJ','SP','PR','RS'])]
我之前查看了一些与isin相关的帖子,并实际试用了它,但他们没有解释如何将它用于多个项目(我遇到了一些错误,比如“isin只接受两个参数,你有四个”。根据你的提示,我注意到我应该使用这些括号,它起了作用。Tks!超级,gald可以帮助!祝你好运!你是对的@jezrael,但是它不是非常清楚,可能会让像我这样的初学者感到困惑。我认为保留这一个是有效的,以防像我这样的人出现错误。)我补充回答,但首先在问题中加上你们的错误。
lista=lista[lista['Estado:'].isin(['RJ' , 'SP' , 'PR' , 'RS'])]
print (lista)
Estado: Telefone
0 SP (11) 2162-0660 / (11) 2162-0639
1 RJ (11) 3144-4000
3 RS (11) 4593-7403
4 PR (19) 3313-5680 / (19) 3313-6000
lista=lista[lista['Estado:'].isin('RJ' , 'SP' , 'PR' , 'RS')]
print (lista)