首页 > 解决方案 > 根据重复在熊猫数据框中使用多个重复子集进行排序

问题描述

我是 python 新手,我想根据数据框集中的某些数据列对一些重复数据进行排序,例如

Import pandas as pd
df = pd.read_excel('Data.xlsx', index = ['ID']
df2 = df[df.duplicated(subset = ['A','B'], keep = False)]
print (df2)

假设输出将是这样的

'ID'|'Name' |'A'|'B'|
1   | Ash   | 1 | 1 |
2   | James | 1 | 1 |
3   | Ash   | 1 | 1 |
4   | James | 1 | 1 |
5   | Ash   | 2 | 1 |
6   | James | 1 | 1 |
7   | Ash   | 2 | 1 |

我希望数据输出如下:

'Name' |'A'|'B'|'Pattern'|'Frequency of Pattern'|
Ash    | 1 | 1 |    1    |           2          |
Ash    | 2 | 1 |    2    |           2          |
James  | 1 | 1 |    3    |           3          |

到目前为止,我还没有找到任何类似的帖子

标签: pythonpandasdataframe

解决方案


用于GroupBy.size计数重复,然后通过以下方式将新列添加到特定位置DataFrame.insert

df4 = df3.groupby(['Name','A','B']).size().reset_index(name='Frequency of Pattern')
df4.insert(3, 'Pattern', df4.index + 1)
print (df4)
    Name  A  B  Pattern  Frequency of Pattern
0    Ash  1  1        1                     2
1    Ash  2  1        2                     2
2  James  1  1        3                     3

推荐阅读