访问熊猫系列的元素

时间:2018-01-27 15:32:39

标签: pandas elements series

我有一个数据框,我想在特定列中提取0/1的频率。

df=pd.DataFrame({'A':[0,0,1,0,1]})

df
Out[6]: 
   A
0  0
1  0
2  1
3  0
4  1

计算出现频率为0 / 1s -

df['A'].value_counts()
Out[8]: 
0    3
1    2
Name: A, dtype: int64

type(df['A'].value_counts())
Out[9]: pandas.core.series.Series

如何提取0和1的频率,让我们假设两个变量,1和0为 -  zeros=3, ones=2

2 个答案:

答案 0 :(得分:1)

我认为返回字典会更灵活一些:

In [234]: df['A'].value_counts().to_dict()
Out[234]: {0: 3, 1: 2}

In [236]: d = df['A'].astype(str).replace(['0','1'], ['zeros','ones']).value_counts().to_dict()

In [237]: d
Out[237]: {'ones': 2, 'zeros': 3}

In [238]: d['ones']
Out[238]: 2

In [239]: d['zeros']
Out[239]: 3

您也可以直接访问它:

In [3]: df['A'].value_counts().loc[0]
Out[3]: 3

In [4]: df['A'].value_counts().loc[1]
Out[4]: 2

答案 1 :(得分:0)

解决此问题的另一种方法是使用collections library和函数counter()

import collections
c = collections.Counter(df['A'])
c
Out[31]: Counter({0: 3, 1: 2})

count_0s=c.Counter(df['A'])[0]#Returns 3
count_1s=c.Counter(df['A'])[1]#Returns 2