DataFrame数据
import pandas as pd
data = {'year': ['2018', '2019', '2016', '2012', '2013', '2016',
'2018', '2019'],
'variable': ['A','A','A','B','B','C','C','C'],
'value': [3.0 ,4.0 ,6.0 ,3.0 ,8.0 ,4.0 ,10.0 ,4.0 ]}
df = pd.DataFrame(data)
df
Out[1]:
year variable value
0 2018 A 3.0
1 2019 A 4.0
2 2016 A 6.0
3 2012 B 3.0
4 2013 B 8.0
5 2016 C 4.0
6 2018 C 10.0
7 2019 C 4.0
方法一:利用DataFram的groupby函数及lambda函数进行筛选重复数据,显示重复内容及重复内容在DataFram中的索引位置。
df.groupby('value').apply(
lambda d: tuple(d.index) if len(d.index) > 1 else None
).dropna()
Out[2]:
value
3.0 (0, 3)
4.0 (1, 5, 7)
dtype: object
方法二:利用DataFram的groupby函数及for迭代进行筛选重复数据,显示重复内容及重复内容在DataFram中的索引位置。
{k: tuple(d.index) for k, d in df.groupby('value') if len(d) > 1}
Out[3]: {3.0: (0, 3), 4.0: (1, 5, 7)}