美文网首页
pandas 使用

pandas 使用

作者: dongshangtong | 来源:发表于2019-06-09 06:03 被阅读0次

    1. Series 使用

    import pandas as pd 
    import numpy as np
    
    s = pd.Series([1,2,3],index=('a','b','c'))
    s
    
    出输:
    a    1
    b    2
    c    3
    dtype: int64
    
    s = pd.Series({'A':1,'B':2,'C':3})
    s
    
    出输:
    a    1
    b    2
    c    3
    dtype: int64
    
    s = pd.Series(1,index=('a','b','c'))
    s
    
    出输:
    a    1
    b    1
    c    1
    dtype: int64
    
    

    2. pandas:索引

    s = pd.Series((1,2,3),index=('a','b','c'))
    # loc 用key来获取
    s.loc['b']
    # 2
    
    # iloc用索引来获取
    s.iloc[2]
    # 3
    
    1. pandas:数据对齐,相加
    s1 = pd.Series(data=[1,2,3], index=['a','b','c'])
    s2 = pd.Series(data=[9,8,7],index=['b','c','d'])
    s3 = s1.add(s2,fill_value=0)
    s3 
    
    出输:
    a     1.0
    b    11.0
    c    11.0
    d     7.0
    dtype: float64
    
    
    s3 = s1 + s2
    s3
    
    出输:
    a     NaN
    b    11.0
    c    11.0
    d     NaN
    dtype: float64
    
    #  dropna() 过滤掉值为nan的行
    s3.dropna()
    
    出输:
    
    b    11.0
    c    11.0
    dtype: float64
    
    
    #  fillna() 填充缺失数据
    s3.fillna(0)
    
    出输:
    a     0.0
    b    11.0
    c    11.0
    d     0.0
    dtype: float64
    
    
    # 返回布尔数组
    s3.isnull()
    
    出输:
    a     True
    b    False
    c    False
    d     True
    dtype: bool
    
    # 返回布尔数组
    s3.notnull()
    出输:
    a    False
    b     True
    c     True
    d    False
    dtype: bool
    
    返回非空数组
    # s3[s3.notnull()]
    
    出输:
    b    11.0
    c    11.0
    dtype: float64
    
    

    3. pandas:DataFrame
    dataframe 是一个表格型的数据结构,含有一组有序的列

    nps = np.random.randint(2,34,size=[3,4])
    pd.DataFrame(data=nps)
    
    输出:
    
    
    0   1   2   3
    0   19  11  25  3
    1   18  2   19  33
    2   17  26  7   25
    
    
    pd.DataFrame({'a':[1,2,3],'b':[3,4,5]})
    
    a   b
    0   1   3
    1   2   4
    2   3   5
    
    
    pd.DataFrame({'A':[1,2,3],'B':[3,4,5]},index=['a1','a2','a3'])
    
       A      B
    a1  1   3
    a2  2   4
    a3  3   5
    
    # 数据保存到本地
    pds.to_csv('./11.csv')
    
    
    #本地读取 pd是pandas
    pfs = pd.read_csv('./11.csv')
    pfs
    
    
    Unnamed: 0  A   B
    0   a1  1   3
    1   a2  2   4
    2   a3  3   5
    
    # 行列转换 ,转置
    pfs.T
    
        0   1   2
    Unnamed: 0  a1  a2  a3
    A   1   2   3
    B   3   4   5
    
    #列索引
    # pfs.columns
    
    出输:
    Index(['Unnamed: 0', 'A', 'B'], dtype='object')
    
    # 获取值数组
    pfs.values
    
    出输:
    array([['a1', 1, 3],
           ['a2', 2, 4],
           ['a3', 3, 5]], dtype=object)
    
    # 获取快速统计
    pfs.describe()
    
    出输:
        A   B
    count   3.0 3.0
    mean    2.0 4.0
    std 1.0 1.0
    min 1.0 3.0
    25% 1.5 3.5
    50% 2.0 4.0
    75% 2.5 4.5
    max 3.0 5.0
    
    

    pandas:dataframe索引和切片

    arr= np.random.randint(1,100,size=[4,5])
    
    parr = pd.DataFrame(arr)
    
    parr
    
    出输:
    
    0   1   2   3   4
    0   37  44  20  4   11
    1   67  63  92  78  86
    2   94  64  10  74  89
    3   83  97  56  10  30
    
    切片:
    parr[2][1]
    # 92
    
    切片:
    parr.iloc[2]
    
    0    94
    1    64
    2    10
    3    74
    4    89
    Name: 2, dtype: int64
    
    切片:
    parr.loc[0]
    
    0    37
    1    44
    2    20
    3     4
    4    11
    Name: 0, dtype: int64
    
    
    # 切出两行
    parr[1:3]
    
    
    0   1   2   3   4
    1   67  63  92  78  86
    2   94  64  10  74  89
    
    # 切出某些元素
    parr[1:3][[1,2]]
    
    1   2
    1   63  92
    2   64  10
    
    

    常用的一些切片:

    通过标签获取:
    df['A']
    df[['A', 'B']]
    df['A'][0]
    df[0:10][['A', 'C']]
    df.loc[:,['A','B']]
    df.loc[:,'A':'C']
    df.loc[0,'A']
    df.loc[0:10,['A','C']]
    通过位置获取:
    df.iloc[3]
    df.iloc[3,3]
    df.iloc[0:3,4:6]
    df.iloc[1:5,:]
    df.iloc[[1,2,4],[0,3]]
    通过布尔值过滤:
    df[df['A']>0]
    df[df['A'].isin([1,3,5])]
    df[df<0] = 0
    

    5. pandas:DataFrame数据对齐与缺失数据

    DataFrame对象在运算时,同样会进行数据对齐,行索引与列索引分别对齐。 结果的行索引与列索引分别为两个操作数的行索引与列索引的并集。

    DataFrame处理缺失数据的相关方法:
    dropna(axis=0,how='any',…)
    fillna()
    isnull()
    notnull()|
    
    1. pandas:其他常用方法
    pandas常用方法(适用Series和DataFrame):
    mean(axis=0,skipna=False)  #均值
    sum(axis=1)  #求和
    sort_index(axis, …, ascending)      按行或列索引排序
    sort_values(by, axis, ascending)    按值排序
    NumPy的通用函数同样适用于pandas
    
    apply(func, axis=0) 将自定义函数应用在各行或者各列上,func可返回标量或者Series
    applymap(func)      将函数应用在DataFrame各个元素上
    map(func)       将函数应用在Series各个元素上
    

    相关文章

      网友评论

          本文标题:pandas 使用

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