pandas 根据A列数据中每一个不同数据出现次数由高到低排列分类B列的数据 并对B列的数据去重
时间: 2023-06-19 12:03:01 浏览: 89
pandas对dataFrame中某一个列的数据进行处理的方法
5星 · 资源好评率100%
可以使用 `pandas` 库中的 `groupby()` 和 `value_counts()` 方法来实现。
假设数据集的 DataFrame 名为 `df`,A列的列名为 `A`,B列的列名为 `B`,代码如下:
``` python
result = df.groupby(['B'])['A'].value_counts().sort_values(ascending=False).reset_index(name='count')
result.drop_duplicates(subset='B', keep='first', inplace=True)
```
这里先对 B 列进行分组,然后对 A 列进行计数并按照出现次数从高到低排序,最后重置索引并将计数列的列名设置为 `count`。
然后使用 `drop_duplicates()` 方法对 B 列进行去重,只保留第一次出现的行。
完整代码如下:
``` python
import pandas as pd
# 创建示例数据集
data = {'A': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], 'B': ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c', 'd']}
df = pd.DataFrame(data)
# 排序并去重
result = df.groupby(['B'])['A'].value_counts().sort_values(ascending=False).reset_index(name='count')
result.drop_duplicates(subset='B', keep='first', inplace=True)
print(result)
```
输出结果为:
```
B A count
0 a 4 2
1 b 4 2
2 c 3 2
3 d 4 1
```
阅读全文