• pandas的高级操作


    1.值的替换操作
    1.单值替换操作:df.replace(to_replace=替换的值,value='被替换的值')
    :df.to_replace={列标签:替换值} value='value'按照列指定某个值替换
    2.多值替换:df.replace(to_replace={被替换的值:'值',被替换的值:'值'}) #多值替换
    2.映射操作:就是自己创建一个映射关系表,比如字典,然后把要映射的值按照字典的键值关系进行绑定
    map是数据Series的方法,只可以被Series调用
    eg:
    from pandas import DataFrame

    dic = {
    'name':['xuezhijun','pengyi',],
    'grade':['100','60',]
    }
    df = DataFrame(data=dic)
    dic = {'xuezhijun':'handsome','pengyi':'sb'}
    df['e_name'] = df['name'].map(dic) # 用名字作映射
    print(df)


    from pandas import DataFrame

    dic = {
    'name':['xuezhijun','pengyi',],
    'grade':['100','60',]
    }
    df = DataFrame(data=dic)
    def after_grade(grade):
    return int(grade)+10
    df['after_grade'] = df['grade'].map(after_grade)
    print(df)


    3.numpy.random.permutation(3) 生成一个0-3的3个数构成数组
    4.将数据打乱(行列索引打乱)(索引只可以使用隐式索引):
    df.take(indices=np.random.permutation(3),axis=1).take(indices=np.random.permutation(100),axis=0)



    5.数据的进行分类处理
    df.groupby(by= '按照什么进行分组处理')
    df.groupby(by='xx').groups # 查看分组的情况
    eg."""利用分组与映射的结合"""
    from pandas import DataFrame

    df = DataFrame({'item':['Apple','Banana','Orange','Banana','Orange','Apple'],
    'price':[4,3,3,2.5,4,2],
    'color':['red','yellow','yellow','green','green','green'],
    'weight':[12,20,50,30,20,44]})


    mean_price = df.groupby(by='item')['price'].mean()
    dic = mean_price.to_dict() # 按照平均价格生成映射表
    df['mean_price'] = df['item'].map(dic)
    print(df)
    6.在分组后看还可以使用自己定义的函数,使用transform和apply方法
    eg:
    def my_mean(s):
    sum = 0
    for i in s:
    sum += i
    return sum/len(s)
    df.groupby(by='item')['price'].apply(my_mean)

    def my_mean(s):
    sum = 0
    for i in s:
    sum += i
    return sum/len(s)
    df.groupby(by='item')['price'].transform(my_mean)
    transform是对返回的结果尽行了映射操作,而apply没有


    6.数据加载操作
    csv文件的读取: df.read_csv('文件路径',sep='分割符号',header = None ) # 如果不将header说明,就会以文本的第一行作为行序列
    数据库文件的读取:
    第一步:获取连接对象:conn = sqlite3.connect('../data/weather_2012.sqlite')
    第二步:读取数据df.read_sql = ('查询语句','conn')
    写入数据:df.to_sql('df_sql',conn)

    7.透视表:df.pivot_table(index = '',values= '', columns= '',aggfunc ='')
    参数:
    index::分类汇总的分类条件,每个透视表都有一个index
    values:对计算的数据进行筛选,就是说我们想看哪些数据就在value中写
    Aggfunc:设置我们对数据聚合时进行的函数操作,当我们未设置aggfunc时,它默认aggfunc='mean'计算均值。
    eg:df.pivot_table(index=['主客场','胜负'],values=['得分','篮板','助攻'],aggfunc='sum')
    一般使用这种操作:df.pivot_table(index=['主客场','胜负'],aggfunc={'得分':'sum','篮板':'mean','助攻':'max'})
    8.交叉表:pd.crosstab(index,colums)
    ◾index:分组数据,交叉表的行索引
    ◾columns:交叉表的列索引


  • 相关阅读:
    MySql为查询结果添加前、后缀
    SQLHelper类
    OracleHelper类
    C#在sql中使用變量訪問Oracle數據庫
    转-调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出
    HTMLTestRunner优化:带截图、饼图、失败重跑
    【转】如何成功安装旧版本火狐,成功安装firebug和firepath插件
    【转】Selenium 加载Chrome/Firefox浏览器配置文件
    mac查看python安装路径
    requests模拟上传照片
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/13254242.html
Copyright © 2020-2023  润新知