使用切片和列表索引数据帧

时间:2018-10-09 18:55:33

标签: python

是否可以使用

这样的索引来索引数据帧
df[[0:12, 14, 19], [0:4 , 6]]

我想获取第0-11、14、19行和第0-4、6列。使用iloc,我无法将切片与特定的行号或列号结合起来。

3 个答案:

答案 0 :(得分:3)

也许可以使用一种更正式的方式来同时使用切片和列表,但是将切片转换为列表并将它们与单个列/行的列表组合起来可能是最简单的方法。

/* ----------------------------------------------------------
shift13.hla.pseudocode  -   a standard input loop doing char-by-char
input from stdin, terminates when the system generates an
eof or the typist presses ^D.
As you work:
    1. GET IT RUNNING
    2. MAKE IT CORRECT
    3. ENJOY IT
    4. THEN MAKE IT LOWER-LEVEL (cmp for if, etc) ;
---------------------------------------------------------- */ 
program shift13 ;
#include ("stdlib.hhf") 
#include ("chars.hhf") 
#include ("stdin.hhf") 
var c : char ;
h : qword; // standard input stdin.handle() ; mv (EAX, h) ;

begin shift13  ;
try
// priming read
stdin.read( c, 1) ;
// input loop
for....
    //handle uppercase letters
    if (c in 'A' .. 'Z') then
        add (32,....  // reduce to lower case
    endif ;
    //handle lowercase letters
    if (c in 'a' .. 'z') then
        // clear ax
        // move c into al (byte into byte: consistent sizes
        // subtract the value of 'a' from the char
        // add the shift to the thcar
        if (al > 25) then  
            // if it's now > the number of chars in the alphabet, subtract 25
        endif;
        // normalize the number back to a lowercase letter by add(....)
        mov (al, c) ; //copy the letter back to the variable it came from
    endif ;

    stdout.putc(c) ;  // whether you've changed it or not, print it.
    stdin.flushInput() ;     //
    read another character
    //if nothing read, it contains zero
    cmp (eax, 0) ;  // cmp == sets z flag
    if (@z) then 
        raise (ex.EndOfFile) ;  // kinda nice, civilized way to terminate the loop
    endif ;
endfor ;

exception (ex.EndOfFile) ;
    stdin.eoln() ;
    //stdout.put("reached end of file" , nl ) ;
    exit shift13 ;
endtry ;
end shift13 ;

答案 1 :(得分:2)

它不允许像这样索引数据帧,但是您可以创建两个列表。一个列表将包含所需行的索引,另一列表将包含列的索引。然后,您可以使用loc函数获取结果。

使用示例中的详细信息创建列表。列表理解用于连续数字,列表用于在范围之外的单个数字。

$scope.retrieve = function() {
    $scope.selectedItem = JSON.parse(sessionStorage.getItem('item'));
}

答案 2 :(得分:1)

例如,我认为您可以在0-11行和0-4列中分隔iloc comand

data.iloc[0:14, 0:4]

然后对第0-11行和第6列进行相同操作,依此类推,然后您可以组合不同的ilocs