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

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相同时候共用同一个值

猜你喜欢

转载自www.cnblogs.com/yaohaitao/p/10296740.html