前言:
当前同学们对“python如何统计数据个数并排序”大概比较关切,咱们都想要分析一些“python如何统计数据个数并排序”的相关资讯。那么小编也在网摘上搜集了一些关于“python如何统计数据个数并排序””的相关内容,希望小伙伴们能喜欢,各位老铁们一起来学习一下吧!排序
Series 的 .sort_index(ascending=True) 方法可以对 index 进行排序操作,ascending 参数用于控制升序或降序,默认为升序。
若要按值的大小对 Series 进行排序,应当使用 .sort_values(na_last=True, ascending=True, kind='mergesort') 方法,任何缺失值默认都会被放到 Series 的末尾。
在 DataFrame 上同样, .sort_index(ascending=True) 方法可以对 index 进行排序操作。
若要按值的大小对 DataFrame 进行排序,使用 .sort_values (axis=0, by=None, ascending=True) 方法,多了一个轴向的选择参数与一个 by 参数,by 参数的作用是针对某一(些)列进行排序(不能对行使用 by 参数)。
data = {'state':['Ohino','Ohino','Ohino','Nevada','Nevada'], 'year':[2000,2001,2002,2001,2002], 'pop':[1.5,1.7,3.6,2.4,2.9]}
df = DataFrame(data)
df
Out[60]:
pop state year
0 1.5 Ohino 2000
1 1.7 Ohino 2001
2 3.6 Ohino 2002
3 2.4 Nevada 2001
4 2.9 Nevada 2002
df.sort_index(ascending = False)
Out[61]:
pop state year
4 2.9 Nevada 2002
3 2.4 Nevada 2001
2 3.6 Ohino 2002
1 1.7 Ohino 2001
0 1.5 Ohino 2000
df.sort_values(by = ['year','pop'])
Out[62]:
pop state year
0 1.5 Ohino 2000
1 1.7 Ohino 2001
3 2.4 Nevada 2001
4 2.9 Nevada 2002
2 3.6 Ohino 2002
排名
Series.rank(method='average', ascending=True) 的作用与排序的不同之处在于,它会把对象的 values 替换成名次(从 1 到 n)。这时唯一的问题在于如何处理平级项(值相同的项),方法里的 method 参数就是起这个作用的,他有四个值可选:average, min, max, first(取平均值/最大值/第一个出现的等)。
sr = Series(np.random.randn(10))
sr
Out[69]:
0 -1.168688
1 -2.024443
2 1.205494
3 -1.797417
4 -2.107228
5 -0.293539
6 -0.903619
7 -0.975033
8 0.650211
9 0.879406
dtype: float64
sr.rank()
Out[70]:
0 4.0
1 2.0
2 10.0
3 3.0
4 1.0
5 7.0
6 6.0
7 5.0
8 8.0
9 9.0
dtype: float64
DataFrame 的 .rank(axis=0, method='average', ascending=True) 方法多了个 axis 参数,可选择按行或列分别进行排名,暂时好像没有针对全部元素的排名方法。
df.rank(method = 'average',ascending = False)
Out[71]:
pop state year
0 5.0 2.0 5.0
1 4.0 2.0 3.5
2 1.0 2.0 1.5
3 3.0 4.5 3.5
4 2.0 4.5 1.5
统计方法
pandas 对象有一些统计方法。它们大部分都属于约简和汇总统计,用于从 Series 中提取单个值,或从 DataFrame 的行或列中提取一个 Series。
比如 DataFrame.mean(axis=0,skipna=True) 方法,针对每一列求出所有行的均值,当数据集中存在 NA 值时,这些值会被简单跳过,除非整个切片(行或列)全是 NA,如果不想这样,则可以通过 skipna=False 来禁用此功能。
df.mean()
Out[77]:
pop 2.42
year 2001.20
dtype: float64
df.mean(axis = 1)
Out[78]:
0 1000.75
1 1001.35
2 1002.80
3 1001.70
4 1002.45
dtype: float64
其他常用的统计方法还有很多,最大值、最小值等,用到的时候大家可以再去查阅相关资料,用法类似。
协方差与相关系数
协方差与相关系数也是比较重要的统计方法,这里拿出来单独讲一下。
Series 有两个方法可以计算协方差与相关系数,方法的主要参数都是另一个 Series。DataFrame 的这两个方法会对**列**进行两两运算,并返回一个 len(columns) 大小的方阵:
.corr(other, method='pearson', min_periods=1) // 相关系数,默认皮尔逊.cov(other, min_periods=None) // 协方差
min_periods 参数为样本量的下限,低于此值的不进行运算。
sr1 = Series(np.random.randn(10))
sr2 = Series(np.random.randn(10))
sr1.corr(sr2)
Out[93]: -0.10531476730246513
data = np.random.randn(18).reshape(6,3)
df = DataFrame(data,columns = ['price','sales','incentive'])
df.cov()
Out[95]:
price sales incentive
price 0.674253 -0.130193 -0.544805
sales -0.130193 0.394993 0.059949
incentive -0.544805 0.059949 1.816049
标签: #python如何统计数据个数并排序