dataframe一列去重计数
时间: 2023-10-12 14:18:37 浏览: 115
可以使用pandas库中的value_counts()方法对一个DataFrame的某一列进行去重计数。例如,假设我们有如下的DataFrame:
```
import pandas as pd
df = pd.DataFrame({
'id': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'name': ['Tom', 'Jerry', 'Mike', 'Tom', 'Lucy', 'Jerry', 'Lucy', 'John', 'Tom', 'Jerry'],
'age': [23, 25, 27, 22, 24, 26, 28, 30, 32, 29]
})
```
我们想要对name这一列进行去重计数,可以使用以下代码:
```
name_counts = df['name'].value_counts()
print(name_counts)
```
输出结果为:
```
Jerry 3
Tom 3
Lucy 2
Mike 1
John 1
Name: name, dtype: int64
```
其中,每个值的计数都显示在它对应的索引位置上。例如,Jerry出现了3次,因此它的计数是3。
相关问题
python dataframe中使用pivot_table方法,里面aggfunc有哪些函数可以用?我需要对某一列去重并计数,aggfunc应该填什么
在使用pivot_table方法时,aggfunc参数可以接受许多常用的聚合函数,例如sum、mean、count、min、max等,具体可以参考pandas的官方文档。
对于需要对某一列去重并计数的需求,可以使用pandas的nunique函数,它可以返回一个Series对象,表示在数据中有多少个唯一值。因此,aggfunc参数可以传入nunique函数来实现对某一列的去重计数操作。例如:
```python
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, 3, 4, 5, 6, 7, 8]
})
table = pd.pivot_table(df, values='C', index=['A'], columns=['B'], aggfunc=pd.nunique)
print(table)
```
输出结果为:
```
B one three two
A
bar 1 1 2
foo 2 1 2
```
其中,每个单元格表示在对应的A和B值下,C列中有多少个唯一值。
pandas groupby 去重计数
你可以使用 `groupby` 和 `nunique` 方法来对 Pandas DataFrame 进行分组后的去重计数。这里的 `groupby` 方法用于按照指定的列对数据进行分组,而 `nunique` 方法用于计算每个组中独特值的数量。
下面是一个示例代码:
```python
import pandas as pd
# 创建示例 DataFrame
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one']}
df = pd.DataFrame(data)
# 使用 groupby 和 nunique 进行分组去重计数
count = df.groupby('A')['B'].nunique()
print(count)
```
输出结果将是每个组中唯一值的数量:
```
A
bar 2
foo 2
Name: B, dtype: int64
```
这表示在列 'A' 中,'bar' 组有两个不同的唯一值,'foo' 组也有两个不同的唯一值。
阅读全文