#yyds干货盘点#登天之梯——Pandas快速入门(下)
Posted 来西瓜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#登天之梯——Pandas快速入门(下)相关的知识,希望对你有一定的参考价值。
6、排序
df.sort_values(by=‘Q1’) #按Q1列数据升序排列
df.sort_values(by=‘Q1’, ascending=False) #按Q1列数据降序排列
df.sort_values([‘team’, ‘Q2’], ascending=[True, False]) #按team列数据升序Q2列数据降序排列
7、分组聚合
df.groupby(‘team’).sum() #按team列分组求各组总和
df.groupby(‘team’).mean() #按team列分组求各组平均值
8、数据转置
df.groupby(‘team’).sum().T #按team列分组求各组总和,最后转置数据,行标与列标互换,数据相应变动
df.groupby(‘team’).sum().stack() #按team列分组,每组再按剩余列分小组,计算各小组总和
df.groupby(‘team’).sum().unstack() #按除team列之外的其它列分大组,再按team列分小组,计算各小组总和
9、增加列
df[‘one’] = 1 #增加一列,列名为one,列中所有值为1
df[‘total’] = df.Q1 + df.Q2 + df.Q3 + df.Q4 #增加一列total,值为Q1、Q2、Q3、Q4列对应值的总和
df[‘total’] = df.loc[:, ‘Q1’:’Q4’].apply(lambda x: sum(x),axis=1)
#将计算结果赋值给新列total
df[‘total’] = df.sum(axis=1) #新增一列,值为对应列数字值的总和
df[‘avg’] = df.total/4 #新增一列平均值
10、统计分析
df.mean() #求所各列的均值,只有数据列才可以
df.corr() #求列与列之间的相关系数
df.count() #求各列非空值的个数
df.max() #求最大值
df.min() #求最小值
df.median() #求中位数
df.std() #求标准差
df.var() #求方差
df.set_index(‘name’).mean(axis=1).head()
#将name设为索引,同一行中各列相加的平均值,取前5行
11、绘图
df[‘Q1’].plot() #Q1成绩的折线图
plt.show() #显示图形
df.set_index(‘name’, inplace=True) #先设定索引,下面才不会报错
df.loc[‘Ben’, ‘Q1’:’Q4’].plot #Ben四个季度的成绩变化折线图
plt.show()
df.loc[‘Ben’, ‘Q1’:’Q4’].plot.bar() #Ben四个季度的成绩变化条形图
df.loc[‘Ben’, ‘Q1’:’Q4’].plot.barh() #Ben四个季度的成绩变化横向条形图
df.groupby(‘team’).sum().T.plot() #各team四个季度总成绩趋势
df.groupby(‘team’).count().Q1.plot.pie() #各组人数对比
12、导出
df.to_excel(‘team_done.xlsx’) #导出Excel格式
df.to_csv(‘team_done.csv’) #导出csv格式
13、位置计算
df.loc[:5, ‘Q1’:’Q4’].diff(1, axis=1)
#取0到5行,每行中后一列的值减前一列的值,本例为每个学生每个季度较前一个季度成绩的变化值
df.shift() #整体下移一行,最顶的一行为NaN
df.shift(-1) #整体上一一行,最底的一行为NaN
df.rank() #将各列值分别从小到大排序,将值变成序号
df.rank(axis=1) #横向排序
以上是关于#yyds干货盘点#登天之梯——Pandas快速入门(下)的主要内容,如果未能解决你的问题,请参考以下文章
# yyds干货盘点 # 盘点6个Pandas中批量替换字符的方法
# yyds干货盘点 # 实战篇:盘点Pandas中的factorize()函数妙用
# yyds干货盘点 # 盘点一道使用pandas.merge()和pandas.join()函数实战应用题目