2016-11-03 29 views
0

我有一个数据帧,看起来像这样司与多指标Dataframes

data = {'0': {('Field A', '0'): 10, 
       ('Field A', '1'): 10, 
       ('Field A', '2'): 10, 
       ('Field B','0'): 6, 
       ('Field B','1'): 6, 
       ('Field B', '2'): 6}, 
     '48': {('Field A', '0'): 5, 
       ('Field A', '1'): 2, 
       ('Field A', '2'): 1, 
       ('Field B', '0'): 3, 
       ('Field B', '1'): 2, 
       ('Field B', '2'): 1}} 

df = pd.DataFrame(data) 
df.index.names = ['field', 'well'] 
df.T.index.names = ['interval'] 

print(df) 

    interval       0 48 
    field      well   
    field A     0  10 5 
           1  10 2 
           2  10 1 
    field B     0  6 3 
           1  6 2 
           2  6 1 

我试图找出如何将所有的列逐元素由列“间隔0”来划分。

结果应该是:

interval       0  48 
field      well    
Total Number of End Points 0  1.0 0.500000 
          1  1.0 0.200000 
          2  1.0 0.100000 
Total Vessel Length  0  1.0 0.500000 
          1  1.0 0.333333 
          2  1.0 0.166667 
+0

你的0列是48列是0列除以48列这是你的意图吗? – Psidom

+0

@psidom对不起,没有那么复杂。我的示例结果是不正确的。列0和列48都应该除以列0。好的ehead。我会修复这个例子。 – agf1997

回答

1

可以使用div()方法(同divide()与参数axis组为0到沿行逐元素除法执行:

df.div(df['0'], axis = 0) 

#interval   0  48 
#field well  
#Field A 0 1.0 0.500000 
#   1 1.0 0.200000 
#   2 1.0 0.100000 
#Field B 0 1.0 0.500000 
#   1 1.0 0.333333 
#   2 1.0 0.166667