Python // Pandas - 仅选择给定列中具有特定条件的行

时间:2017-06-21 21:32:03

标签: 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  (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个

1 个答案:

答案 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个