Lesson 11. 重复值处理 pandas
行相同的数据只保留一行
//找出重复行的位置
dIndex = df.duplicated()
//根据某些列,找出重复的位置
dIndex = df.duplicated('column_name')
dIndex = df.duplicated(['column_1', 'column_2'])
//根据返回值,把重复数据提取出来
df[dIndex]
//删除重复值(默认按照所有列进行比较)
newDF = df.drop_duplicates()
//根据指定列删除
newDF = df.drop_duplicates('column_name')
Lesson 12. 缺失值处理 pandas
产生原因:1. 信息暂时无法获取 2. 信息被遗漏或错误处理
处理方法:1. 数据补齐(平均值填充) 2. 删除对应缺失行(数据量过少不适用) 3. 不处理
Attention: pandas DataFrame 用NaN标注缺失值
from pandas import read_csv
df = read_csv('/Users/DuDuLang/Downloads/sample.csv',sep=',', engine='python')
#找出空值的位置,返回一张boolean table
isNA = df.isnull()
#获取空值所在行
df[isNA.any(axis=1)]
df[isNA[['sallary']].any(axis=1)]
df[isNA[['sallary', 'total']].any(axis=1)]
#补全空值
df.fillna('n/a')
Lesson 13. 空格值处理
strip:清除字符型数据左右的空格 = trim
#清除字符串左侧空格 **注意提取的值是str类型**
df['address'] = df['address'].str.lstrip()
#清除字符串右侧空格
df['address'] = df['address'].str.rstrip()
#清除字符串两侧空格
df['address'] = df['address'].str.strip()
Lesson 14. 字段抽取
根据已知列数据的开始和结束位置,抽取出新的列
slice(start, stop) 前闭后开区间
Lesson 15. 字段拆分
按照固定的字符,拆分已有字符串
split(sep, n, expand=False)
sep: 用于分割的字符串
n: 分割为多少列,从0开始:如果为0,表示不拆分
expand: 是否展开为DataFrame, default: False -> Series, True -> DataFrame