使用python从excel计算行数

时间:2016-07-01 16:10:19

标签: python

我第一次看到这样的表:

xls  = pd.ExcelFile("data.xlsx",header = None)
df = xls.parse('data', header=None)

结果如下:

        0   1       2   3   4       5   6
0   291672  84885   1   1   0.03980 0   9
1   266227  77261   0   0   2.47720 1   0
2   264600  76722   1   1   1.79850 2   0
3   270364  78519   0   0   0.15620 0   5

我的目标是找到“5”和“6”列的每个组合,计算每个“2”“3”组合的数量,并获得每种类型的平均“4”。

例如:

"5" "6" "2" "3" average"4" count()
 0   9   0   0    0.1222    23
 0   9   0   1    0.1222    45
 0   9   1   0    0.1222    24
 0   9   1   1    0.1222    12
         .....

我对Python很陌生。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的问题有点不清楚,如果您向我们提供可重复的示例,以显示您尝试的内容,则可能会有所改进。但是,我认为这可能是你想要的?

import pandas as pd

data = {'foo':[5,2,2,4,4], 
        'bar':[5,2,1,1,1], 
        'baz':[.2,.3,.4,.5,.6], 
        'foo1':[2,2,2,1,1], 
        'foo2':[2,2,1,1,3]}

df = pd.DataFrame(data)

df
>
   bar  baz  foo  foo1  foo2
0    5  0.2    5     2     2
1    2  0.3    2     2     2
2    1  0.4    2     2     1
3    1  0.5    4     1     1
4    1  0.6    4     1     3

df.groupby(['foo','bar', 'foo1', 'foo2']).mean()

>
                   baz
foo bar foo1 foo2
2   1   2    1     0.4
    2   2    2     0.3
4   1   1    1     0.5
             3     0.6
5   5   2    2     0.2

即使它不是你想要的,你仍然应该阅读Pandas中的groupby,因为这绝对是解决方案的一部分。

编辑:实际上现在我再次阅读它,由于计数,这可能更准确:

data = {'foo':[5,2,2,4,4], 
        'bar':[5,2,1,1,1], 
        'baz':[.2,.3,.4,.5,.6], 
        'foo1':[2,2,2,1,1], 
        'foo2':[2,2,1,1,1]}

df = pd.DataFrame(data)

df.groupby(['foo','bar', 'foo1', 'foo2']).agg(['mean', 'count'])
>
                    baz
                   mean count
foo bar foo1 foo2
2   1   2    1     0.40     1
    2   2    2     0.30     1
4   1   1    1     0.55     2
5   5   2    2     0.20     1

这里我只使用agg来传递两个聚合函数,您可以看到折叠了相同的行并将计数提升到2。请注意,foo2中的一个值已从第一个示例更改为显示此工作。

相关问题