1.去重 data.drop_duplicates()
默認保留第一個值,take_last=True 返回最后一個值。
data.drop_duplicates(['k1','k2'],take_last=True)
2. 替換 ,data.replace()
數據表:data=DataFrame({'food':['bacon','pulled pork','bacon','Pastrami','corned beef','Bacon','pastrami','honey ham','nova lox'],'ounces':[4,3,12,6,7.5,8,3,5,6]})
另一個是維表
meat_to_animal = {
'bacon':'pig',
'pulled pork':'pig',
'pastrami':'cow',
'corned beef':'cow',
'honey ham':'pig',
'nova lox':'salmon'
}
3.將這兩個表關聯起來,.map可以將data frame中的column,作用一些函數,或者map一個維表
data['animal']=data['food'].map(str.lower).map(meat_to_animal)
food列都變成了小寫,且animal列也映射成功
4,下一個函數跟index相關,我們先把food列變成index
data1=data.set_index('food')
將index首字母大寫,columns名稱大寫
data2=data1.rename(index=str.title,columns=str.upper)
Index和column改名,Index 的Bacon 改為 little Bacon, column的OUNCES 改為weight
data3=data2.rename(index={'Bacon':'Little Bacon'},columns={'OUNCES':'weight'})
5.區間數據統計,用bins框定幾個區間,然后將一個數組data3的weight列,按照這幾個區間設定level,看看都屬于哪個level. pd.cut,左開右閉的形式,pd.value_counts(cats),可以最終統計各個分布
bins=[3,5,7,9,11,20]
W1=data3['weight']
cats=pd.cut(W1,bins)
pd.value_counts(cats)
左邊的區間,可以定義其他名稱,據目前觀察,labels竟然是按照字母順序排列的,所以只能想到加序號這個笨辦法了
group_names = ['1S','2S-M','3M','4M-L','5L']
cats_group=pd.cut(W1,bins,labels=group_names)