zoukankan      html  css  js  c++  java
  • pandas-赋值操作

    1,pandas操作主要有对指定位置的赋值,如上一篇中的数据选择一样,根据loc,iloc,ix选择指定位置,直接赋值

    2,插入,insert方法,插入行和列

    3,添加

    4,删除 drop方法

    5,弹出 pop方法

    In [1]:

    import pandas as pd
    import numpy as np
    

    In [53]:

    dates = np.arange(20190809,20190815)
    df1 = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=["A","B","C","D"])
    df1
    

    Out[53]:

    A B C D
    20190809 0 1 2 3
    20190810 4 5 6 7
    20190811 8 9 10 11
    20190812 12 13 14 15
    20190813 16 17 18 19
    20190814 20 21 22 23

    In [20]:

    df1.iloc[2,2]
    

    Out[20]:

    10
    

    In [44]:

    df1.iloc[2,2] = 100
    df1
    

    Out[44]:

    A B C D
    20190809 0 1 2 3
    20190810 4 5 6 7
    20190811 8 9 100 11
    20190812 12 13 14 15
    20190813 16 17 18 19
    20190814 20 21 22 23

    In [40]:

    df1.loc[20190810,"B"]=200
    df1
    

    Out[40]:

    A B C D
    20190809 0 1 2 3
    20190810 4 200 6 7
    20190811 8 9 10 11
    20190812 12 13 14 15
    20190813 16 17 18 19
    20190814 20 21 22 23

    In [54]:

    df1[df1.A>10]=0
    df1
    

    Out[54]:

    A B C D
    20190809 0 1 2 3
    20190810 4 5 6 7
    20190811 8 9 10 11
    20190812 0 0 0 0
    20190813 0 0 0 0
    20190814 0 0 0 0

    In [55]:

    df1.A[df1.A==0]=100
    df1
    

    Out[55]:

    A B C D
    20190809 100 1 2 3
    20190810 4 5 6 7
    20190811 8 9 10 11
    20190812 100 0 0 0
    20190813 100 0 0 0
    20190814 100 0 0 0

    In [56]:

    #插入一列
    df1["E"]=10
    df1
    

    Out[56]:

    A B C D E
    20190809 100 1 2 3 10
    20190810 4 5 6 7 10
    20190811 8 9 10 11 10
    20190812 100 0 0 0 10
    20190813 100 0 0 0 10
    20190814 100 0 0 0 10

    In [59]:

    df1["F"]=pd.Series([1,2,3,4,5,6],index=dates)
    df1
    

    Out[59]:

    A B C D E F
    20190809 100 1 2 3 10 1
    20190810 4 5 6 7 10 2
    20190811 8 9 10 11 10 3
    20190812 100 0 0 0 10 4
    20190813 100 0 0 0 10 5
    20190814 100 0 0 0 10 6

    In [62]:

    #添加一行
    df1.loc[20190815,["A","B","C"]]=[5,6,8]
    df1
    

    Out[62]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN

    In [65]:

    s1=pd.Series([1,2,3,4,5,6],index=["A","B","C","D","E","F"])
    s1.name="S1"
    df2 = df1.append(s1)
    df2
    

    Out[65]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN
    S1 1.0 2.0 3.0 4.0 5.0 6.0

    In [67]:

    #插入一列
    df1.insert(1,"G",df2["E"])
    df1
    

    Out[67]:

    A G B C D E F
    20190809 100.0 10.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 10.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 10.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 10.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 10.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 10.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 NaN 6.0 8.0 NaN NaN NaN

    In [68]:

    g=df1.pop("G")
    df1.insert(6,"G",g)
    df1
    

    Out[68]:

    A B C D E F G
    20190809 100.0 1.0 2.0 3.0 10.0 1.0 10.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0 10.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0 10.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0 10.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0 10.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0 10.0
    20190815 5.0 6.0 8.0 NaN NaN NaN NaN

    In [69]:

    #删除列
    del df1["G"]
    df1
    

    Out[69]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN

    In [70]:

    df2 = df1.drop(["A","B"],axis=1)
    df1
    

    Out[70]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN

    In [71]:

    df2
    

    Out[71]:

    C D E F
    20190809 2.0 3.0 10.0 1.0
    20190810 6.0 7.0 10.0 2.0
    20190811 10.0 11.0 10.0 3.0
    20190812 0.0 0.0 10.0 4.0
    20190813 0.0 0.0 10.0 5.0
    20190814 0.0 0.0 10.0 6.0
    20190815 8.0 NaN NaN NaN

    In [73]:

    #删除行
    df2=df1.drop([20190810,20190812],axis=0)
    df1
    

    Out[73]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190810 4.0 5.0 6.0 7.0 10.0 2.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190812 100.0 0.0 0.0 0.0 10.0 4.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN

    In [74]:

    df2
    

    Out[74]:

    A B C D E F
    20190809 100.0 1.0 2.0 3.0 10.0 1.0
    20190811 8.0 9.0 10.0 11.0 10.0 3.0
    20190813 100.0 0.0 0.0 0.0 10.0 5.0
    20190814 100.0 0.0 0.0 0.0 10.0 6.0
    20190815 5.0 6.0 8.0 NaN NaN NaN
  • 相关阅读:
    项目管理工具Redmine各功能测试
    TestLink学习八:TestLink1.9.13与Mantis1.2.19集成
    TestLink学习七:TestLink测试用例Excel转换XML工具
    Mantis1.2.19 在Windows 平台上的安装配置详解
    TestLink学习六:TestLink1.9.13工作使用小结
    TestLink学习五:TestLink1.9.13和JIRA6.3.6的集成
    TestLink学习四:TestLink1.9.13使用说明
    TestLink学习三:发送邮件的两种配置方法
    网页太长怎么截图?
    JIRA学习一:Windows下安装破解JIRA6.3.6
  • 原文地址:https://www.cnblogs.com/mrwuzs/p/11325205.html
Copyright © 2011-2022 走看看