Lesson 11. 重復值處理 pandas
行相同的數(shù)據(jù)只保留一行
//找出重復行的位置
dIndex = df.duplicated()
//根據(jù)某些列练湿,找出重復的位置
dIndex = df.duplicated('column_name')
dIndex = df.duplicated(['column_1', 'column_2'])
//根據(jù)返回值元践,把重復數(shù)據(jù)提取出來
df[dIndex]
//刪除重復值(默認按照所有列進行比較)
newDF = df.drop_duplicates()
//根據(jù)指定列刪除
newDF = df.drop_duplicates('column_name')
Lesson 12. 缺失值處理 pandas
產(chǎn)生原因:1. 信息暫時無法獲取 2. 信息被遺漏或錯誤處理
處理方法:1. 數(shù)據(jù)補齊(平均值填充) 2. 刪除對應缺失行(數(shù)據(jù)量過少不適用) 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:清除字符型數(shù)據(jù)左右的空格 = trim
#清除字符串左側空格 **注意提取的值是str類型**
df['address'] = df['address'].str.lstrip()
#清除字符串右側空格
df['address'] = df['address'].str.rstrip()
#清除字符串兩側空格
df['address'] = df['address'].str.strip()
Lesson 14. 字段抽取
根據(jù)已知列數(shù)據(jù)的開始和結束位置被辑,抽取出新的列
slice(start, stop) 前閉后開區(qū)間
Lesson 15. 字段拆分
按照固定的字符挽封,拆分已有字符串
split(sep, n, expand=False)
sep: 用于分割的字符串
n: 分割為多少列已球,從0開始:如果為0,表示不拆分
expand: 是否展開為DataFrame, default: False -> Series, True -> DataFrame