美文网首页
pandas基本操作——1

pandas基本操作——1

作者: 荔枝葡萄干 | 来源:发表于2019-03-17 16:20 被阅读0次

    这里来介绍一下pandas。由于知识点比较多,决定分几篇介绍。

    import numpy as np
    import pandas as pd 
    #pandas是基于numpy的一个开源python库。
    #我认为相当于python版excel
    
    
    #series是一种一维数组,是基于ndarray设计的,但是他多了一个功能就是自定义标签。
    #说的明白点就是索引。因此可以通过这个索引来访问数组中的数据
    #创建语法如下:
    #my_series=pd.Series(data,index)
    countries=['USA','France','China','England']
    my_data=[100,200,300,400]
    my_series=pd.Series(my_data,countries)
    my_series
    
    USA        100
    France     200
    China      300
    England    400
    dtype: int64
    
    #注意,index是可以省略的,这时系统会自动已默认index进行索引,这时的series就类似数组了。
    pd.Series(my_data)
    
    0    100
    1    200
    2    300
    3    400
    dtype: int64
    
    #从numpy数组对象来创建Series:
    np_arr=np.array(my_data)
    pd.Series(np_arr)
    
    0    100
    1    200
    2    300
    3    400
    dtype: int64
    
    #从字典来创建Series似乎更方便
    #pandas会自动把字典的键值设置成Series的index,并将对应的values放在和索引对应的data里
    #这也证明了,pandas的Series可以存放各种不同类型的对象。
    my_dict={'a':50,'b':60,'c':70,'d':80}
    pd.Series(my_dict)
    
    a    50
    b    60
    c    70
    d    80
    dtype: int64
    
    #从Series中获取数据,和字典操作基本一样。
    my_dict['b']
    60
    
    #对Series进行算术运算操作
    #基于index进行,可以用加减乘除这样的运算符对两个Series进行运算。
    #结果均以浮点数的形式存储,以免丢失精度。
    series1=pd.Series([1,2,3,4],['shandong','wuhan','changsha','hangzhou'])
    series2=pd.Series([4,7,9,2],['beijing','tianjin','shijiazhuang','hangzhou'])
    #如果pandas在两个Series里找不到相同的index,对应位置就返回空值NaN。
    series1-series2
    
    beijing         NaN
    changsha        NaN
    hangzhou        2.0
    shandong        NaN
    shijiazhuang    NaN
    tianjin         NaN
    wuhan           NaN
    dtype: float64
    
    series1+series2
    beijing         NaN
    changsha        NaN
    hangzhou        6.0
    shandong        NaN
    shijiazhuang    NaN
    tianjin         NaN
    wuhan           NaN
    dtype: float64
    
    
    #DataFrames
    #Pandas的DataFrame是一种2维数据结构,数据以表格的形式存储,分为若干行和列。
    #下面用多个Series来构建一个DataFrame。道理很简单,多个一维数组组合起来就变成了二维数组
    df={'Name':pd.Series(['齐','楚','秦','燕','赵','魏','韩'],index=['东','南','西','东北','北','中北','中']),
           'Age':pd.Series(['32','42','32','45','14','22','34'],index=['东','南','西','东北','北','中北','中']),
           'size':pd.Series(['2332','4212','3242','4455','1324','2232','3784'],['东','南','西','东北','北','中北','中'])
       }
    pd.DataFrame(df)
    
    
    Name    Age size
    东   齐   32  2332
    南   楚   42  4212
    西   秦   32  3242
    东北  燕   45  4455
    北   赵   14  1324
    中北  魏   22  2232
    中   韩   34  3784
    
    
    #用一个字典来创建DataFrame
    data={'name':['dwd','dwds','fgerd'],
          'age':[32,43,1231],
          'year':[2012,2123,2312]
    }
    my_df=pd.DataFrame(data,index=['first','second','last'])
    my_df
    
    
                    name      age   year
    first           dwd           32        2012
    second  dwds       43   2123
    last            fgerd   1231    2312
    
    my_df[['age','year']]
    
    age year
    first   32  2012
    second  43  2123
    last    1231    2312
    
    
    
    #给DataFrame增加数据列
    #1.可以从头开始定义一个pd.Series,放到表中.
    #2.可以用现有的列来产生需要的新列。
    #1
    my_df['size']=pd.Series([323,123,435],['first','second','last'])
    my_df
    
    name    age year    size
    first   dwd 32  2012    323
    second  dwds    43  2123    123
    last    fgerd   1231    2312    435
    
    #2从其他列中创造新列
    my_df['pip']=my_df['age']+my_df['size']
    my_df=pd.DataFrame(my_df)
    my_df
    
    
    name    age year    size    pip
    first   dwd 32  2012    323 355
    second  dwds    43  2123    123 166
    last    fgerd   1231    2312    435 1666
    
    
    
    #从DataFrame删除行/列。用drop()函数。
    #使用时需要指定具体的删除方向,axis=0对应的是行row,axis=1对应的是列column。
    my_df.drop('pip',axis=1)
    
    name    age year    size
    first   dwd 32  2012    323
    second  dwds    43  2123    123
    last    fgerd   1231    2312    435
    
    my_df.drop('first',axis=0)
    
    name    age year    size    pip
    second  dwds    43  2123    123 166
    last    fgerd   1231    2312    435 1666
    
    
    未完待续
    

    相关文章

      网友评论

          本文标题:pandas基本操作——1

          本文链接:https://www.haomeiwen.com/subject/gguumqtx.html