计算数据框中的元素

时间:2015-03-05 09:41:33

标签: python numpy pandas

我有一个这样的数据框:

df = pd.DataFrame({'A': ['foo', 'bar', 'ololo'] * 4,
                            'B': np.random.randn(12),
                            'C': np.random.randint(0, 2, 12)})

之后,我这样做:

 ga = df.groupby(['A'])

例如,我得到了:

bar
      A         B  C
1   bar  0.393058  1
4   bar -1.105328  0
7   bar -0.042472  0
10  bar -0.865564  1


foo
     A         B  C
0  foo  1.074720  1
3  foo -2.034497  0
6  foo  0.122219  1
9  foo -0.423785  0


ololo
        A         B  C
2   ololo  0.227501  1
5   ololo  0.774087  0
8   ololo  1.146629  1
11  ololo  1.275878  0

如何计算每组中的'1'和'0'(在C列中)? 什么是最简单的计算方法?

1 个答案:

答案 0 :(得分:1)

我的数据与您的数据不同但它应该适合您,在“C”列上调用value_counts()

In [391]:

df = pd.DataFrame({'A': ['foo', 'bar', 'ololo'] * 4,
                            'B': np.random.randn(12),
                            'C': np.random.randint(0, 2, 12)})
df
Out[391]:
        A         B  C
0     foo  0.314818  1
1     bar  2.204360  1
2   ololo -0.290745  0
3     foo  1.346946  1
4     bar  1.129958  0
5   ololo  0.347720  0
6     foo -1.116949  0
7     bar -1.605924  1
8   ololo  1.997094  1
9     foo -1.290455  1
10    bar -1.829666  0
11  ololo -0.376138  0
In [395]:

ga = df.groupby(['A'])['C'].value_counts()
ga
Out[395]:
A       
bar    1    2
       0    2
foo    1    3
       0    1
ololo  0    3
       1    1
dtype: int64