构造数据:
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame(
data=[
['zs', 17, 1],
['ls', 18, 1],
['ls', 18, 1],
['ww', 19, 2],
['zl', 20, 2]
],
index=['stu0', 'stu1', 'stu2', 'stu3', 'stu4'],
columns=['name', 'age', 'group']
)
print('df:\n', df)
数据去重
DataFrame.drop_duplicates(subset=None, keep=“first”, inplace=False, ignore_index=False)
参数:
subset:指定进行去重的列,默认
None
使用所有列
keep: 去重方式
'first'
:默认,保留第一次出现的数据,丢掉后续出现的重复的数据'last'
:保留最后一次出现的数据,丢掉之前出现的重复的数据False
:删除所有重复的数据inplace: 默认为False。如果为True,则直接删除,对原df进行操作; 如果为False,那么返回一个结果,不会对原df操作!
ignore_index : 默认为 False, 如果为 True则不使用原 行索引,生成索引为 0, 1, …, n - 1。
查看有多少个不同的小组
df.drop_duplicates(
subset=['group'], # 按照指定的列进行去重
keep='first', # 保留第一次出现的数据,丢掉后续出现的重复的数据
inplace=True
)
print('df0:\n', df)
df.drop_duplicates(
subset=['group'],
keep='first',
inplace=True,
ignore_index=True # 忽略行索引,生成新索引
)
print('df1:\n', df)
重复数据统计
ret = pd.value_counts(
df['group'],
sort=True, # 默认 True,按值排序
ascending=True, # 默认 False,是升序排序;True 表示降序
dropna=True # 默认 True 不包括 NaN 的计数
)
print('ret:\n', ret)
"""
ret:
2 2 # 2组出现了2次
1 3 # 1组出现了3次
Name: group, dtype: int64
"""