【数据分析可视化】通过去重进行数据清洗

2020-07-07 18:11:11 浏览数 (1)

代码语言:javascript复制
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
代码语言:javascript复制
# 读取刚刚分解处理完的返回数据
link_csv = '/Users/bennyrhys/Desktop/数据分析可视化-数据集/homework/demo_duplicate.csv'
df = pd.read_csv(link_csv)
df

Unnamed: 0

Price

Seqno

Symbol

time

0

0

1623.0

0.0

APPL

1473411962

1

1

1623.0

0.0

APPL

1473411962

2

2

1623.0

0.0

APPL

1473411963

3

3

1623.0

0.0

APPL

1473411963

4

4

1649.0

1.0

APPL

1473411963

代码语言:javascript复制
# 删掉无用的unname
del df['Unnamed: 0']
df

Price

Seqno

Symbol

time

0

1623.0

0.0

APPL

1473411962

1

1623.0

0.0

APPL

1473411962

2

1623.0

0.0

APPL

1473411963

3

1623.0

0.0

APPL

1473411963

4

1649.0

1.0

APPL

1473411963

代码语言:javascript复制
df.size
代码语言:javascript复制
20
代码语言:javascript复制
len(df)
代码语言:javascript复制
5
代码语言:javascript复制
# 查看no列有多少重复的
df['Seqno'].unique()
代码语言:javascript复制
array([0., 1.])
代码语言:javascript复制
len(df['Seqno'].unique())
代码语言:javascript复制
2
代码语言:javascript复制
# 检测是否与前边重复
df['Seqno'].duplicated()
代码语言:javascript复制
0    False
1     True
2     True
3     True
4    False
Name: Seqno, dtype: bool
代码语言:javascript复制
# 删掉重复的数据也就是上方展示为true的数据
df['Seqno'].drop_duplicates()
代码语言:javascript复制
0    0.0
4    1.0
Name: Seqno, dtype: float64
代码语言:javascript复制
# 这样范围局限,无法展示全部(Series)
type(df['Seqno'].drop_duplicates())
代码语言:javascript复制
pandas.core.series.Series
代码语言:javascript复制
# 这样no列重复值删不感觉(不传参,则整体考虑某列重复最小处理原则)
df.drop_duplicates()

Price

Seqno

Symbol

time

0

1623.0

0.0

APPL

1473411962

2

1623.0

0.0

APPL

1473411963

4

1649.0

1.0

APPL

1473411963

代码语言:javascript复制
# 在DataFrame状态下进行处理(暂时全部)
df.drop_duplicates(['Seqno'])

Price

Seqno

Symbol

time

0

1623.0

0.0

APPL

1473411962

4

1649.0

1.0

APPL

1473411963

代码语言:javascript复制
# 去重 参数(保留最后出现的)
df.drop_duplicates(['Seqno'],keep='last')

Price

Seqno

Symbol

time

3

1623.0

0.0

APPL

1473411963

4

1649.0

1.0

APPL

1473411963

0 人点赞