• padnas 入门教程


    # encoding=utf-8
    import pandas as pd
    from pylab import mpl
    import matplotlib.pyplot as plt
    from matplotlib import font_manager
    
    #在数据挖掘前一个数据分析、筛选、清理的多功能工具
    
    #将excel读取并转换为pandas的DataFrame
    #pd.read_csv读取CSV文件
    #创建一个默认索引从0开始的Series
    s = pd.Series([1,2,3,4,5,6])
    #创建一个自定义索引的数组,索引由index指定,和前面数组依次对应
    s = pd.Series([1,2,3,4,5,6],index=['a','b','c','d','e','f'])
    #使用字典创建一个DataFrame,字典的Key会自动成为索引,一个Key默认对应一列数据
    df1 = pd.DataFrame({'math':[1,2,3,4,5],'physic':[5,6,7,8,9]})
    #提取头两行,参数指定从开始读取多少行
    df1.head(2)
    #提取结尾数据,参数指定从结尾开始多少行
    df1.tail(2)
    #生成从20180101开始的时间序列,默认增加单位是天
    dates = pd.date_range('20180101',periods=10)
    #创建使用时间索引的Series
    s_date= pd.Series(range(10), index=dates)
    #取出从2018-01-01到2018-01-06的行数据
    s_date['2018-01-01':'2018-01-06']
    
    df_imdb = pd.read_csv('IMDB.csv')
    #查看数据基本信息
    df_imdb.info()
    #选出一列
    df_imdb.Title #相当于df_imdb['Title']
    #获取最高票房
    df_imdb['Revenue (Millions)'].max()
    df_imdb['Revenue (Millions)'].sum()
    df_imdb['Revenue (Millions)'].idxmax()#返回最大值的索引
    #将DataFrame第50行数据的Director列取出,[]去1:6的数据的时候不会把6取出来
    df_imdb[50:51]['Director']
    #第一个纬度是行,第二维度是列,将50到56行(包含50行和56行自身)的导演和年份取出
    df_imdb.loc[50:56,['Director','Year']]
    #将1到10行(不包含第10行),及2到3列(不包含第3列)取出,使用整数索引操作
    df_imdb.iloc[1:10,2:3]
    #统计Director列中不同导演出现的次数
    df_imdb['Director'].value_counts()
    #将票房大于5亿美元的电影选出来,支持> < ==
    df_imdb[df_imdb['Revenue (Millions)'] > 500]
    #将电影风格描述中含有Sci-Fi(科幻)关键字的找出,str将待处理列转换为字符串
    df_imdb[df_imdb['Genre'].str.contains('Sci-Fi')]
    #将缺失数据(NaN)填充为0,也可以自己根据项目需求指定其他数据
    df_score.fillna(0)
    #将缺失数据的行移除(默认操作,可以使用axis=1指定删除列df_score.dropna(axis=1),0:按行,1:按列)
    df_score.dropna()
    
    #加载excel文件
    df_score = pd.read_excel('score.xlsx')
    #在DataFrame增加一列avg(平均值),计算当前DataFrame中每一行的平均值作为avg的数据,前后赋值数据的
    #行数要对应,axis=1表示按照行计算平均值,axis=0(默认值),表示按列计算
    df_score['avg'] = df_score.mean(axis=1)
    #为成绩表添加一个新列,计算总分
    df_score['sum'] = df_score.sum(axis=1)
    #选出音乐、性别字段,按照性别分组,进一步计算各个分组的总和
    df_score.loc[:,[u'音乐',u'性别']].groupby(u'性别').sum()
    #将数学成绩大于80或化学成绩大于60的同学选出
    df_score[(df_score[u'数学'] > 80) | (df_score[u'化学'] > 60)]
    #使用lambda,配合apply方法将日期中的年份提取出来
    #apply函数会将lambda一次作用到数据集的每个元素
    dates = pd.Series(['20190901','20190902','20190903'])
    dates.apply(lambda x:x[0:4])
    #创建一个数据的副本
    df_copy = df_score.copy()
    #计算数学列的总和、平均值、最大值、方差,里面的字符串必须有同名函数
    df_score[u'数学'].agg(['sum','mean','max','std'])
    #将pandas类型转换为numpy类型
    df_score.loc[:,[u'数学',u'化学']].values
    
    #对新添加的sum(总分)按照降序进行排序,False:降序(由大到小),默认是升序(由小到大)
    df_score['sum'].sort_values(ascending=False)
    #取出Embarked,Survived字段,按照两个字段的顺序(重要!!!!)做层次分组,然后计算总和
    df_score.loc[:,['Embarked','Survived']].groupby(['Embarked','Survived']).size()
  • 相关阅读:
    Python开发入门与实战3-Django动态页面
    Python开发入门与实战2-第一个Django项目
    Python开发入门与实战1-开发环境
    牛客网剑指offer第12题——数值的整数次方
    再叙快速排序
    牛客网剑指offer第29题——最小的k个数
    牛客网剑指offer第59题——按之字形顺序打印二叉树
    牛客网剑指offer第33题——第N个丑数
    各种特征距离的计算方法及应用
    牛客网剑指offer第24题——二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/10239527.html
Copyright © 2020-2023  润新知