pandas 学习笔记01 快速入门

#安装pandas

#pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

#excel处理相关包:xlrd,openpyxl,XlsxWriter

#解析网页包:Requests,lxml,html5lib,Beautiful Soup 4

#可视化包:Matplotlib,seaborn,Plotly/Bokeh

#计算包:SciPy,srarsmodels
#pandas快速入门
import pandas as pd #引入pandas库,按惯例起别名pd
#读取数据
df = pd.read_csv(r'D:\work01\pandas\app\data\zkkh.csv',) #path也可为网页路径
#df
#查看数据
df.head() #查看前5条数据,括号中可以写明你想看的条数
df.tail()# 查看尾部5条
df.sample(5) # 随机查看5条
#验证数据
df.shape #查看行数和列数
df.info()#查看索引、数据类型和内存信息
df.describe() #查看数字型列的汇总信息
df.dtypes #查看各字段内型
df.axes #显示行和列名
df.columns #显示列名
#建立索引
df.set_index('sfzh',inplace=True) #建立索引并生效
df.head()
#数据选取
#选取列
df['bmh'] 
df.bmh  #同上,如果列名符合Python变量名要求,可使用  返回数据为Series型数据
#选取多列
df[['bmh','kh']] #只看这两列 注意符合
df.loc[:,['bmh','kh']] #效果同上

#选择行
df[df.index == 'Liver'] #指定姓名(用指定索引选取)
df[0:3] #取前三行
df[0:10:2] #在前10个中两个取一个
df.iloc[:10,:] # 前10个(以上三行为自然索引选择)
import pandas as pd
df = pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')
#df.head()
#选择制定行和列
df.set_index('name',inplace=True)
df.loc['Liver','Q1':'Q4'] #只看liver四个季度的业绩
df.loc['Eorge':'Alexander','team':'Q4'] #区间选择
#条件选择
df[df.Q1>90] #Q1列大于90
df[df['team'] == 'C'] #team列为c的
df[df.index=='Oscar'] #索引为Oscar

#组合条件
df[(df['Q1']>90)&(df['team'] == 'C')] #and关系
df[df['team']=='C'].loc[df.Q1>90] #多重筛选

#排序
df.sort_values(by='Q1') #按Q1列升序排列
df.sort_values(by='Q1',ascending=False) #按Q1列降序排列
df.sort_values(by=['team','Q1'],ascending=[True,False]) ##按team列升序排列,按Q1列降序排列
#分组聚合
df.groupby('team').sum() #按团队分组,对应列相加
df.groupby('team').mean()#按团队分组,对应列求平均
df.groupby('team').agg(
    {'Q1':sum,#求和
    'Q2':'count',#总数
    'Q3':'mean',#平均
    'Q4':max#最大值
    }
)
#数据转换
df.groupby('team').sum().T #对数据进行转置
#增加列
df['one']=1
# df['total'] = df.Q1+df.Q2+df.Q3+df.Q4 #方式一
# df['total'] = df.loc[:,'Q1':'Q4'].apply(lambda x:sum(x),axis=1)#方式二
# df['total'] = df.sum(axis=1) #可以把所有的数字列相加,但有警告抛出
# df['avg'] = df.total/4
#df.head()
#统计分析
# df.mean() #返回所有列的均值,但有警告抛出
# df.mean(1)#返回所有行的均值,但有警告抛出
# df.corr() # 返回列于列之间相关系数
# df.max()#返回每列的最大值
# df.min()##返回每列的最小值
# df.median()#返回每列的中位数,但有警告抛出
#df.std()#返回每一列的标准差,但有警告抛出
#df.var()# 方差 ,但有警告抛出
df.mode() #众数
#绘图 需安装Matplotlib
#df['Q1'].plot() #Q1折线分布
# df.loc['Ben','Q1':'Q4'].plot() #Ben Q1-Q4折线变化
#df.loc[ 'Ben','Q1':'Q4'].plot.bar() #柱状图
# df.loc[ 'Ben','Q1':'Q4'].plot.barh()#横向柱状图
# df.groupby('team').sum().T.plot() #各team四个季度总成绩趋势
#df.groupby('team').count().Q1.plot.pie()#各组人数对比饼图
#导出
# df.to_excel('team-done.xlsx')
# df.to_csv('team-done.csv')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值