📅  最后修改于: 2023-12-03 15:18:14.246000             🧑  作者: Mango
在数据处理中,常常需要对数据中多列的组合进行计数,以了解数据的分布情况,此时pandas的value_counts方法就变得很有用。
DataFrame.value_counts(
self,
subset = None,
normalize = False,
sort = True,
ascending = False
...
)
其中,self
表示DataFrame类型的对象,subset
表示要计数的列,可以为单个列名或由列名构成的列表,normalize
表示是否进行归一化计数,sort
表示是否按照计数值排序,ascending
表示是否升序排列。
下面是一个示例,我们可以使用value_counts
方法对DataFrame
中的多列进行计数:
import pandas as pd
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': ['x', 'y', 'x', 'y', 'x', 'y', 'x', 'x']}
df = pd.DataFrame(data)
# 对ABC三列进行组合计数
counts = df.groupby(['A', 'B', 'C']).size().reset_index(name='counts')
# 按照counts排序
counts = counts.sort_values(by='counts')
# 查看计数结果
print(counts)
输出结果如下:
A B C counts
1 bar one y 1
2 bar three y 1
3 bar two y 1
0 bar one x 1
4 foo one x 1
10 foo two y 1
9 foo two x 1
8 foo one two 1
7 foo three x 1
6 foo one three 1
5 foo one y 1
从结果中可以看出,我们成功地对ABC三列进行了组合计数,并按照counts的大小进行了排序。
Pandas的value_counts方法可以方便地对多列数据进行组合计数,在数据分析和数据处理中有着广泛的应用。