数据清洗之 高阶函数处理

Posted wx62c62b36cedf9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗之 高阶函数处理相关的知识,希望对你有一定的参考价值。


高阶函数处理

  • 在dataframe中使用apply方法,调用自定义函数对数据进行处理
  • 函数apply,注意axis
  • 可以使用astype函数对数据进行转换
  • 可以使用map函数进行数据转换
import pandas as pd
import numpy as np
import
os.getcwd()
D:\\\\Jupyter\\\\notebook\\\\Python数据清洗实战\\\\数据清洗之数据转换
os.chdir(D:\\\\Jupyter\\\\notebook\\\\Python数据清洗实战\\\\数据)
df = pd.read_csv(sam_tianchi_mum_baby.csv, dtype=str, encoding=utf-8)
df.head(5)



user_id

birthday

gender

0

2757

20130311

1

1

415971

20121111

0

2

1372572

20120130

1

3

10339332

20110910

0

4

10642245

20130213

0

def f(x):
if 0 in str(x):
return
elif 1 in str(x):
return
else:
return 未知
# apply函数可做很多其他处理
df[性别] = df[gender].apply(f)
df.head(5)



user_id

birthday

gender

性别

0

2757

20130311

1


1

415971

20121111

0


2

1372572

20120130

1


3

10339332

20110910

0


4

10642245

20130213

0


# 查看性别为未知数据
df[df[gender] == 2].head(5)



user_id

birthday

gender

性别

46

49167150

20130818

2

未知

47

49983255

20140206

2

未知

51

52529655

20130611

2

未知

58

57711375

20130420

2

未知

106

99665637

20130926

2

未知

del df[性别]
# map函数主要用于映射
df[性别] = df[gender].map(0: 女性, 1:男性, 2: 未知)
df.head(5)



user_id

birthday

gender

性别

0

2757

20130311

1

男性

1

415971

20121111

0

女性

2

1372572

20120130

1

男性

3

10339332

20110910

0

女性

4

10642245

20130213

0

女性

del df[性别]
# map函数也可传入自己定义的函数
df[性别] = df[gender].map(f)
df.head(5)



user_id

birthday

gender

性别

0

2757

20130311

1


1

415971

20121111

0


2

1372572

20120130

1


3

10339332

20110910

0


4

10642245

20130213

0


# 脱敏处理
# 可使用lambda函数
df[user_id].apply(lambda x: str(x).replace(x[1:3], **)).head(5)
0        2**7
1 4**971
2 1**2572
3 1**39332
4 1**42245
Name: user_id, dtype: object
df[birthday].apply(lambda x: x[0:4]).head(5)
0    2013
1 2012
2 2012
3 2011
4 2013
Name: birthday, dtype: object


以上是关于数据清洗之 高阶函数处理的主要内容,如果未能解决你的问题,请参考以下文章

《谁说菜鸟不会数据分析》数据处理 之 数据清洗--重复数据的处理

Pandas学习笔记02- 数据处理高阶用法

数据清洗之 重复值处理

数据清洗之 缺失值处理

数据清洗之 聚合函数使用

数据预处理之清洗