zoukankan      html  css  js  c++  java
  • pandas包的一些功能

    series
    
    import pandas as pd
    from pandas import Series,DataFrame
    data=Series([4,7,-5,3])
    data.values #以数组的形式呈现
    data=Series([4,7,-5,3],index=["d","b","a","c"]) #自定义index
    data.index #查看index
    data["a"] #索引查询
    data["a"]=5 #更改
    data[data>0] #索引正值
    np.exp(data)
    "b" in data #返回布尔值
    data1 = Series(data) #字典转换成series
    data=Series(data,index=states) #states是一个包含index的list,若没有对应的,则NaN
    pd.isnull(data) #返回都是布尔值的series
    pd.notnull(data)
    data.isnull()
    data1+data2 #series在算数运算中会i懂对齐不同索引的数据
    data.name="population" #设置series的名字
    data.index.name="state" #索引也可以设定名字哦~~
    data.index=["bob","steve","jeff"] #修改索引

    DataFrame

    frame=DataFrame(data) #字典转化为dataframe,key变列索引
    frame=DataFrame(data,columns=["year","state","pop"],index=["one","two","three"]) #columns是列索引,index是行索引
    frame.columns #查看列索引
    frame.one
    frame["state"]
    frame.ix["three"] #`.ix`用于对行索引
    frame["debt"]=16.5 #16.5覆盖debt列的所有值
    frame["debt"]=np.arange(5)
    frame["eastern"] = frame.state=="ohio" #得到布尔值
    frame=DateFrame(pop) #pop为嵌套字典,外层key为列索引,内层key为行索引
    frame.T
    frame.index.name="year"
    frame.columns.name="state"
    frame.values #返回数组

    重新索引

    data=Series([4.5,7.2,-5.3,3.6],index=["d","b","a","c"])
    data1=data.reindex(["a","b","c","d","e"]) #`.reindex`进行索引排序
    data1=data.reindex(["a","b","c","d","e"],fill_value=0) #`fill_value=0`即NaN变为0
    data.reindex(range(6),method="ffill") #缺失项,前向填充,若method="bfill",即为后项填充
    frame=DataFrame(np.arange(9).reshape((3,3)),index=["a","c","d"],columns=["ohio","texas","california"])
    frame.reindex(["a","b","c","d"])
    frame.ix[["a","b","c","d"],states] #左行索引,右列索引

    丢弃指定轴上的项

    frame.drop("c") #丢弃行的一项,默认axis=0,丢弃列是,设置axis=1
    frame["b":"c"] #!!!!!!利用标签的切片运算与普通的python切片运算不同,其末端是包含的。
    data<0 #所有都返回布尔值
    data1.add(data2,fill_value=0)

    排序和排名

    data.sort_index() #按索引排序,默认axis=0
    data.sort_index(axis=1,ascending=False) #列索引按降序排序
    data.order() #series按值排序,且缺失值会默认放句末
    frame.sort_index(by="b") #按b列顺序
    frame.sort_index(by=["b","a"])
    frame.index.is_unique #索引是否唯一

    汇总和计算描述统计

    data.sum(axis=1,skipna=False) #skipana排除缺失值,默认为True
    data.idxmax() #索引最大值
    df.cumsum() #累计加
    df.describe() #显示数量、均值、方差、最小最大值、各分位数,非数值型数据返回:count、unique、top、freq
    data.corr() #相关系数
    data.cov() #协方差
    data.corrwith(data.IBM)

    唯一值、值计数以及成员资格

    data.unique() #显示series中的唯一值
    data.value_counts() #series中各值出现频数,默认sort=True
    data.isin(["b","c"]) #series是否为b或c

    滤除缺失数据

    data.dropna() #默认丢弃任何含有缺失值的行
    data.dropna(how="all") #how="all"表示只丢弃全为NA的那些行
    df.ix[:4,1]=NA #`.ix`函数,若dataframe没有设定index,包含末端
    df.fillna({1:0.5,3:-1})
    df.fillna(0,inplace=True)

    关联

    res_detail = pd.merge(ori_res, gp_df, how='left', left_on='cid', right_on='cid')

    数据透视表

    res_stat = pd.pivot_table(res_detail, index=['CORP', 'aip_corp', 'update_dt'], aggfunc='sum', margins=False)
    res_stat = res_stat.reset_index()
  • 相关阅读:
    [TimLinux] myblog 创建第一个app
    [TimLinux] MySQL InnoDB的外键约束不支持set default引用选项
    [TimLinux] 养成一个习惯
    [TimLinux] myblog 页面Axure设计
    [TimLinux] MySQL 中的CASE/WHEN语法
    [TimLinux] Python Django myblog启动
    [TimLinux] Python 模块
    [TimLinux] JavaScript 获取元素节点的5种方法
    堆和栈的一点知识
    OpenCV2基础操作----直线、矩形、圆、椭圆函数的使用
  • 原文地址:https://www.cnblogs.com/kimi765096/p/9052319.html
Copyright © 2011-2022 走看看