pandas

作者: 臻甄 | 来源:发表于2019-01-09 17:37 被阅读3次

    Mac 安装 pip3 install pandas

    如果说numpy是一个列表的话,pandas更像是一个字典
    两个一般会搭配使用

    import pandas as pd
    import numpy
    s = pd.Series([1,3,6,np.nan,44,1])
    dates = pd.date_range('20190106', periods=6)
    df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['a','b','c','d'])
    df1 = pd.DataFrame(np.arange(12).reshape((3,4)))
    df2 = pd.DataFrame({'A':1.,
              'B': pd.Timestamp('20130102'),
              'C': pd.Series(1, index=list(range(4)), dtype='float32'),
              'D': np.array([3] * 4, dtype='int32'),
              'E': pd.Categorical(["test","train","test","train"]),
              'F': 'foo'})
    df2.dtype
    
    image.png image.png image.png image.png image.png image.png image.png

    选择数据

    dates = pd.date_range('20190106', periods=6)
    df = pd.DataFrame(np.arrange(24).reshape((6,4)), index=dates, columns=['A','B','C','D'])
    print(df['A'], df.A)
    print(df.loc['20190106])  #使用标签选择数据
    print(df.loc[:, ['A','B']])  #选择列标签,打印对应列的整行内容
    print(df.iloc[3, 1]) #选择第3行第一列
    print(df.iloc[[]1,3,5], 1:3) #切片处理
    print(df[df.A > 8) #筛选元素大于8的数据
    
    

    修改数据

    df.iloc[2,2] = 111
    df.loc['20190106', 'B'] = 222
    df.B[df.A>4] = 0 #筛选数据并更改值
    
    • pandas可以读取很多类型的文件,常用的是csv
    import pandas as pd
    data = =pd.read_csv('student.csv')
    print(data)
    

    合并多个dataFrame

    import pandas as pd
    import numpy as np
    
    df1 = pd.DataFrame(np.ones((3,4))*0, columns=['a','b','c','d'], index=[1,2,3])
    df2 = pd.DataFrame(np.ones((3,4))*0, columns=['b','c','d','e'], index=[2,3,4])
    
    res = pd.concat([df1, df2], axis=0, ignore_index=True)
    
    res = pd.concat([df1,df2], join='inner', ignore_index=True)  #inner是求交集,outer是求outer
    
    res = pd.concat([df1,df2], axis=1, join_axes=[df1.index]) # 1是左右合并
    
    res = df1.append(df2, ignore_index=True)
    res = df1.append([df2,df3], ignore_index=True)
    

    合并merge

    plot

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    # plot 
    
    #Series
    data = pd.Series(np.random.randn(1000), index=np.arange(1000))
    data = data.cumsum()
    data.plot()
    plt.show()
    
    
    #DataFrame
    data = pd.DataFrame(np.randn(1000, 4),
               index=np.arange(1000),
               columns=list("ABCD"))
    data = data.cumsum()
    #print(data.head())#打印前几个数据,默认是5
    data.plot()
    plt.show()
    
    #scatter
    #ax代表axes,代表一个绘图窗口
    ax = data.plot.scatter(x='A',y='B', color='DarkBlue', label='Class 1')
    data.plot.scatter(x='A',y='C',color='DarkGreen',label='Class 2', ax=ax)
    plot.show()
    
    

    plot方法一共有

    • bar
    • hist
    • box
    • kde
    • area
    • acatter
    • hexbin
    • pie

    可以生成类似这样的图

    image.png image.png image.png

    相关文章

      网友评论

        本文标题:pandas

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