pythonもしくはRで2行ずつの処理をする方法


独学でPython、Rを学んでいます。

[code]

            a       b       c       d       e       f       ...     x
    ID_1    11      17      32      9       62      299     
    ID_2    3       71      22      929     11      39      
    ID_3    43      21      2       41      42      8       
    ID_4    9       1       99      78      2       1
    .
    .
    .
    ID_X    
    
[/code]

上記のようなテーブルから、  
a列が10以上の場合（ID_1, ID_3）のみa列×b列を計算、c列が10以上の場合（ID_1, ID_2,
ID_4）のみc列×d列を計算、といった処理をしたいのですが、  
うまい処理の方法がわかりません。  
100行以上ある行、列で、自動で2列ずつ分割して判定、処理する方法はありませんでしょうか？よろしくお願いします。

追記  
書き方がわかりにくくて申し訳ありません。  
f列以降の列も、ID_4以降の行も続く大きなテーブルでの処理です。  
なので、a列の判定->計算、c列の判定->計算・・・といった個別の処理が出来なく、  
うまい処理方法をご教示いただきたいです。

追記2

[code]

            a/b      c/d      e/f    ...     x
    ID_1    0.6      3.6      0.2      
    ID_2    NA       0.0      0.3       
    ID_3    2.0      NA       5.3      
    ID_4    NA       1.3      NA 
    .
    .
    .
    ID_X    
    
[/code]

イメージとしては、上記のようなアウトプットを想定しています。

現在、

> > odd <\- DF[(0:(ncol(DF)%/%2)*2)+1]  
>  > even <\- DF[(0:(ncol(DF)%/%2)*2)]  
>  > odd / even

とすることで、なんとか隣り合った列を計算させることはできましたが、  
各偶数列が10以上の行のみ計算する方法がまだわかりません。




Pythonでの例です。

前処理

[code]

    PS C:\> python.exe
    Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> text = '''        a       b       c       d       e       f
    ... ID_1    11      17      32      9       62      299
    ... ID_2    3       71      22      929     11      39
    ... ID_3    43      21      2       41      42      8
    ... ID_4    9       1       99      78      2       1'''
    >>> data = [x.split() for x in text.splitlines()]
    >>> data
    [['a', 'b', 'c', 'd', 'e', 'f'], ['ID_1', '11', '17', '32', '9', '62', '299'], ['ID_2', '3', '71', '22', '929', '11', '39'], ['ID_3', '43', '21', '2', '41', '42', '8'], ['ID_4', '9', '1', '99', '78', '2', '1']]
    >>> header = data.pop(0)
    >>> header
    ['a', 'b', 'c', 'd', 'e', 'f']
    >>> data
    [['ID_1', '11', '17', '32', '9', '62', '299'], ['ID_2', '3', '71', '22', '929', '11', '39'], ['ID_3', '43', '21', '2', '41', '42', '8'], ['ID_4', '9', '1', '99', '78', '2', '1']]
    >>> header = ['index'] + header
    >>> import pandas as pd
    >>> df = pd.DataFrame(data,  columns=header, dtype=int)
    >>> df = df.set_index(['index'])
    >>> df
            a   b   c    d   e    f
    index
    ID_1   11  17  32    9  62  299
    ID_2    3  71  22  929  11   39
    ID_3   43  21   2   41  42    8
    ID_4    9   1  99   78   2    1
    
[/code]

aが10以上の行

[code]

    >>> df[df.a>=10]
            a   b   c   d   e    f
    index
    ID_1   11  17  32   9  62  299
    ID_3   43  21   2  41  42    8
    
[/code]

aが10以上の行は、aとbを掛ける

[code]

    >>> df[df.a>=10].apply(lambda s: s.a * s.b, axis=1)
    index
    ID_1    187
    ID_3    903
    dtype: int64
    
[/code]

cが10以上の行は、cとdを掛ける

[code]

    >>> df[df.c>=10].apply(lambda s: s.c * s.d, axis=1)
    index
    ID_1      288
    ID_2    20438
    ID_4     7722
    dtype: int64
    
[/code]

