Xiaotao Luo - 5 days ago 4x
R Question

R-Python : how to eliminate specific rows and columns?

Take this R demo as an example :

``````df <- matrix(1:100, nrow = 10, ncol = 10)
``````

df :

``````> df
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    1   11   21   31   41   51   61   71   81    91
[2,]    2   12   22   32   42   52   62   72   82    92
[3,]    3   13   23   33   43   53   63   73   83    93
[4,]    4   14   24   34   44   54   64   74   84    94
[5,]    5   15   25   35   45   55   65   75   85    95
[6,]    6   16   26   36   46   56   66   76   86    96
[7,]    7   17   27   37   47   57   67   77   87    97
[8,]    8   18   28   38   48   58   68   78   88    98
[9,]    9   19   29   39   49   59   69   79   89    99
[10,]   10   20   30   40   50   60   70   80   90   100
``````

Now I want to eliminate
`2:8`
rows and
`3:7`
columns, so I did:

``````> eliminated.rows <- 2:8
> eliminated.cols <- 3:7
> df <- df[-eliminated.rows, -eliminated.cols]
``````

Then I got what I want:

``````> df
[,1] [,2] [,3] [,4] [,5]
[1,]    1   11   71   81   91
[2,]    9   19   79   89   99
[3,]   10   20   80   90  100
``````

Question is :

How to achieve my goal with Python ?

EDIT:

To be specific, if I got lists of rows and columns to be eliminated, like
`eliminated_rows = list(), eliminated_cols = list()`
, and I want result
`df = df[-eliminated_rows, -eliminated_cols]`
with python.

Any help will be appreciated.

You could do this:

``````df = pd.DataFrame(np.random.randint(0,100,size=(10, 10)), columns=list('ABCDEFGHIJ'))
row_i= df.index.isin(range(1,8))
col_i=df.index.isin(range(2,7))
df.iloc[~row_i,~col_i]
``````

Be careful of the index as it starts from 0 in python.