import pandas as pd
import os
os.chdir('c:\\users\\violette\\desktop\\')
data1=pd.read_csv('11資料.csv',encoding= 'gbk',header=none)
#完整性
#缺失值:刪除、均值、高頻
#刪除全空的行
data1.dropna(how='all',inplace=true)
#均值填充
#data1['weight'].fillna(data1['weight'].mean(),inplace=true)
#高頻填充
age_maxf=data1['age'].value_counts().index[0]#value_counts得到age名和頻次
#盡量**內容不帶單位方便處理,將單位標註在標籤上
#去掉單位
data1['weight']=data1['weight'].str.replace('kgs','')
#由str轉為float
data1['weight']=pd.to_numeric(data1['weight'])
#均值填充weight
data1['weight'].fillna(data1.weight.mean(),inplace=true)
#將單位移動到name
data1.rename(columns=,inplace=true)#注意inplace
#合理性
#拆分name為名和姓
data1[['firstname','lastname']]=data1['name'].str.split(expand=true)
#刪除name
data1.drop('name',axis=1,inplace=true)
#更改df的順序
order=['no','firstname','lastname','weight(kgs)',4,5,6,7,8,9]
data1=data1[order]
#轉換非ascii字元
#唯一性 刪除重複資料
課後練習:
import pandas as pd
import os
os.chdir('c:\\users\\violette\\desktop\\')
data=pd.read_csv('11作業資料.csv',encoding='utf-8')
發現的問題:
food列大小寫混雜——str.capotalize統一首字母大寫
ounces存在缺失項——用這一項的均值填補缺失值
ounces不應有負數——按照負數條件刪除列
corned beef bacon這個應該有問題但我沒弄它
python資料清洗
對於資料中缺失的值,可以有3種方法處理 1.刪除。比如餐廳的營業額,有幾天去裝修了,確實沒營業,可以刪除 2.不處理 有一些模型可以將缺失值作為一種特殊的值,可以直接建模。3.補上 均值 中位數 眾數 一般情況吧 固定值 比如工資啊,補貼啊 最近臨插補 最近的值,相鄰的,補上 下面是拉格朗日插值法 ...
資料清洗 python
資料清洗 python 1.1引言 對於處理大資料問題,首先就是要進行資料預處理,排除掉那些那些很離譜的資料,當然我們肯定不能乙個乙個用眼睛來找 容易累死 所以我們就要學會如何用程式來進行資料的預處理,我們常常用兩種語言 matlab和python,這裡我先介紹一下用python進行資料清洗。1.2...
Python 資料清洗
重複值處理 一般採取刪除法,但是有些不能刪 df.duplicated df.duplicated subset keep last first np.sum sd.duplicated df.dorp duplicates subset keep last first inplace true f...