1. 程式人生 > >pandas一些基本操作(DataFram和Series)_4

pandas一些基本操作(DataFram和Series)_4

協方差 first tac imp value 等級分 panda 二次排序 wap

import numpy as np;
import pandas as pd;
kill_num=pd.Series([10,12,8,5,0,2,6])#擊殺數量
#青銅1200-2000
#白銀2001-2500
#黃金2501-3000
#鉑金3001-3500
user_level=pd.Series([3100,3400,2700,2400,1200,2000,2500])#等級分數
#cov 協方差 corr相關系數
print(kill_num)
print(user_level)
print(kill_num.cov(user_level)) #正相關 越大接近運動越快 負相關 越小 遠離運動越快
#
# year=pd.Series( )
print(kill_num.corr(user_level))#只能在負一到正1之間 越接近1相關程度越高,反之亦然
#唯一值 unique
ages=pd.Series([18,30,20,39.24,20,18,30])
print(ages.unique())
#計數 value_counts()
print(ages.value_counts()) #Series
#成員資格 isin([])
print(ages.isin([20,18,30]))
#層次索引
#Series層次索引
#2017年 蘋果賣了200T 橘子賣了120T 香蕉賣了30T
#2018年 蘋果賣了130T 橘子100T
sale_num=pd.Series({"2017-蘋果":200,"2017-橘子":120,"2017-香蕉":30,"2018-蘋果":130,"2018-橘子":100})
print(sale_num)
sale_num=pd.Series([200,120,30,130,100],index=[[2017,2017,2017,2018,2018],[‘蘋果‘,‘橘子‘,‘香蕉‘,‘蘋果‘,‘橘子‘]])
print(sale_num)
print(sale_num[2017])
print(sale_num[2018])
print(sale_num[2017,‘蘋果‘])
print(sale_num[:,‘蘋果‘])
print(sale_num.sum())
print(sale_num.sum(level=1))
#交換層次索引
print(sale_num.swaplevel())
print(sale_num.swaplevel().sort_index(level=0))
#層次索引和DataFram的互相轉換
print(sale_num.unstack().T)
print(sale_num.unstack())
#排序
print(sale_num.sort_values(ascending=True)) #TRUE 正序 false 倒序
scores = pd.DataFrame(np.random.randint(0,60,[5,5]),columns=list("ABCDE"),index=list("abcde"))
print(scores)
print(scores.sort_values(by=[‘A‘],ascending=False))#默認倒序
print(scores.sort_values(by=[‘A‘,‘C‘],ascending=False))#A-->C 二次排序
print(scores.sort_values(by=[‘d‘],axis=1)) #行排序
#排名
print(scores[‘A‘])
print(scores[‘A‘].rank(ascending=False)) #如果出現相同的時候會取中間值比如2.5
#method average 平均 min 共用最小值 first 誰先取到排前面
print(scores[‘A‘].rank(ascending=False,method=‘max‘)) #x相同時候共用同一個值

pandas一些基本操作(DataFram和Series)_4