zoukankan      html  css  js  c++  java
  • Panda的学习之路(3)——pandas 设置特定的值&处理没有数据的部分

    先设定好我们的dataframe:

    # pandas 设置特定的值
    dates=pd.date_range('20130101',periods=6)
    # print(dates)
    df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['a','b','c','d'])
    print(df)

    结果:

                 a   b   c   d
    2013-01-01   0   1   2   3
    2013-01-02   4   5   6   7
    2013-01-03   8   9  10  11
    2013-01-04  12  13  14  15
    2013-01-05  16  17  18  19
    2013-01-06  20  21  22  23

    一、修改特定的数据

    1.1分别根据索引和行(列)号来修改特定的值

    df.iloc[2,2]=1111 #第二列第二行的数据 改为1111
    print(df)
    
    df.loc['20130101','b']=2222
    print(df)

    结果:

                 a     b     c   d
    2013-01-01   0  2222     2   3
    2013-01-02   4     5     6   7
    2013-01-03   8     9  1111  11
    2013-01-04  12    13    14  15
    2013-01-05  16    17    18  19
    2013-01-06  20    21    22  23

    1.2对特定的行进行筛选操作

    df[df.a>4]=0 #这个是指 a这一列 只要是大于4的 其所在的行全部变为0
    print(df)

    结果:

                a  b  c  d
    2013-01-01  0  1  2  3
    2013-01-02  4  5  6  7
    2013-01-03  0  0  0  0
    2013-01-04  0  0  0  0
    2013-01-05  0  0  0  0
    2013-01-06  0  0  0  0

    1.3对特定的列进行筛选操作:

    df.a[df.a>4]=0#这个是只更改某一列
    print(df)

    结果

                a   b   c   d
    2013-01-01  0   1   2   3
    2013-01-02  4   5   6   7
    2013-01-03  0   9  10  11
    2013-01-04  0  13  14  15
    2013-01-05  0  17  18  19
    2013-01-06  0  21  22  23

     二、增加一个列

    #datafame 加一个空的行
    df['f']=np.nan
    print(df)
    #这个是增加一个有内容的行
    df['e']=pd.Series([1,2,3,4,5,6],index=pd.date_range('20130101',periods=6))
    print(df)

    结果:

                 a   b   c   d   f  e
    2013-01-01   0   1   2   3 NaN  1
    2013-01-02   4   5   6   7 NaN  2
    2013-01-03   8   9  10  11 NaN  3
    2013-01-04  12  13  14  15 NaN  4
    2013-01-05  16  17  18  19 NaN  5
    2013-01-06  20  21  22  23 NaN  6

    三、处理没有数据的部分

    3.1设定丢失数据

    # pandas处理没有数据的部分
    dates=pd.date_range('20130101',periods=6)
    # print(dates)
    df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['a','b','c','d'])
    print(df)
    df.iloc[0,1]=np.nan#设定丢失的数据
    df.iloc[1,2]=np.nan
    print(df)

    结果:

                 a     b     c   d
    2013-01-01   0   NaN   2.0   3
    2013-01-02   4   5.0   NaN   7
    2013-01-03   8   9.0  10.0  11
    2013-01-04  12  13.0  14.0  15
    2013-01-05  16  17.0  18.0  19
    2013-01-06  20  21.0  22.0  23

    3.2丢弃操作

    丢弃特定的行

    df=df.dropna(axis=0,how='any')#axis=0 表示行 how={'any','all'}
    print(df)

    结果

                 a     b     c   d
    2013-01-03   8   9.0  10.0  11
    2013-01-04  12  13.0  14.0  15
    2013-01-05  16  17.0  18.0  19
    2013-01-06  20  21.0  22.0  23

    丢弃特定的列:

    df=df.dropna(axis=1,how='any')
    print(df)

    结果

                 a   d
    2013-01-01   0   3
    2013-01-02   4   7
    2013-01-03   8  11
    2013-01-04  12  15
    2013-01-05  16  19
    2013-01-06  20  23

    填充操作:

    # 填充操作
    df=df.fillna(value=2333)
    print(df)

    结果:

                 a       b       c   d
    2013-01-01   0  2333.0     2.0   3
    2013-01-02   4     5.0  2333.0   7
    2013-01-03   8     9.0    10.0  11
    2013-01-04  12    13.0    14.0  15
    2013-01-05  16    17.0    18.0  19
    2013-01-06  20    21.0    22.0  23

    四、判断是否有缺失

    # 判断是否有缺失
    df=df.isnull()
    print(df)
    
    a=np.any(df.isnull()==True)
    print(a)

    结果:

                    a      b      c      d
    2013-01-01  False   True  False  False
    2013-01-02  False  False   True  False
    2013-01-03  False  False  False  False
    2013-01-04  False  False  False  False
    2013-01-05  False  False  False  False
    2013-01-06  False  False  False  False
    直接确定是否有缺失的
    True
  • 相关阅读:
    错误:CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”的解决方法
    DotNetNuke中Membership Provider机制
    解决异常“SqlParameterCollection 只接受非空的 SqlParameter 类型对象。”
    使用 Membership.ValidateUser(Login1.UserName, Login1.Password)验证用户
    布隆过滤器应用
    Paxos在大型系统中常见的应用场景(转)
    淘宝MapReduce作业特性分析(转)
    淘宝Hadoop集群的概况(转)
    内核模块管理(转)
    Centos启动流程(转)
  • 原文地址:https://www.cnblogs.com/William-xh/p/9562691.html
Copyright © 2011-2022 走看看