我有一个数据框:
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:
项都是RJ
。
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个
答案 0 :(得分:1)
您需要将// -> Func<Action<int>, Action<Exception>, // arguments
// Action<object, CustomEventArgs>> // return value
var getCompleteHandler = /* that */
// create the completion handler by invoking the "get" function
// -> Action<object, CustomEventArgs> // same as return value
var completionHandler = getCompletionHandler(
(x) => Console.WriteLine(x),
(ex) => Console.WriteLine("Exception!: " + ex));
// call the completion handler any number of times..
foreach (var i in Enumerable.Range(42)) {
completionHandler(this, new CustomEventArgs { IntVar = i });
}
添加到isin
,因为参数[]
为:
值:设置或列表式
要测试的值序列。传入单个字符串会引发TypeError。相反,将单个字符串转换为一个元素的列表。
values
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
TypeError:isin()需要2个位置参数,但是给出了5个