pandas统计多列数据值 的 出现的个数
时间: 2023-07-15 07:10:58 浏览: 149
可以使用 `value_counts()` 方法来统计多列数据值的出现个数。
假设有一个数据集 `df`,其中有两列数据 `col1` 和 `col2`,我们可以使用如下代码来统计这两列数据值的出现个数:
``` python
counts = df[['col1', 'col2']].apply(lambda x: tuple(x), axis=1).value_counts()
```
这里用到了 `apply()` 方法和 `lambda` 表达式将 `col1` 和 `col2` 合并成一个元组,然后使用 `value_counts()` 方法统计元组出现的次数。
最终会得到一个 `counts` 变量,它是一个 Pandas 的 Series 对象,其中的索引是元组,表示 `col1` 和 `col2` 的值,而 Series 对象中的值则是元组出现的次数。
相关问题
如何利用pandas统计某列下相应数值的个数
可以使用 Pandas 的 `value_counts()` 方法统计某列下每个数值出现的次数。假设你有一个名为 `data.csv` 的文件,其中包含一个名为 `col` 的列,你可以按如下方式操作:
```python
import pandas as pd
# 读取文件,假设有列名
df = pd.read_csv('data.csv')
# 统计 'col' 列中每个数值出现的次数
value_counts = df['col'].value_counts()
# 打印结果
print(value_counts)
```
这会输出一个类似以下内容的结果:
```
1.0 100
2.0 80
3.0 50
4.0 30
5.0 20
Name: col, dtype: int64
```
其中,每行表示一个数值及其出现次数,第一列是数值,第二列是出现次数。你可以使用这个结果进行进一步的数据分析和可视化。
如果你想统计多个列的数值,你可以使用 `groupby()` 方法对多个列进行分组,然后使用 `value_counts()` 方法统计每组中数值的出现次数。例如,假设你有两个列 `col_1` 和 `col_2`,你可以按如下方式操作:
```python
# 统计 'col_1' 和 'col_2' 两列中每个数值出现的次数
value_counts = df.groupby(['col_1', 'col_2']).size()
# 打印结果
print(value_counts)
```
这会输出一个类似以下内容的结果:
```
col_1 col_2
1 a 50
b 30
c 20
2 a 40
b 20
c 20
3 a 30
b 10
c 10
dtype: int64
```
其中,每行表示一个数值及其出现次数,第一列是 `col_1` 和 `col_2` 的值,第二列是出现次数。你可以根据需要进行进一步的数据处理和可视化。
pandas多列去重并统计重复个数
可以使用 pandas 的 groupby 函数和 nunique 函数来实现多列去重并统计重复个数。
假设我们有一个数据集 df,其中包含三列 A、B、C:
```
import pandas as pd
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 1, 1, 2, 1, 2, 1]
})
```
我们想要根据列 A 和 B 去重,并统计重复的个数。可以使用以下代码:
```
df.groupby(['A', 'B']).nunique()
```
输出结果如下:
```
A B C
A B
bar one 1 1 1
three 1 1 1
two 1 1 1
foo one 1 1 2
three 1 1 1
two 1 1 1
```
其中,第一列和第二列是去重后的列 A 和 B,第三列是重复的个数(即列 C 的不同值的个数)。