• pandas设置值-【老鱼学pandas】


    本节主要讲述如何根据上篇博客中选择出相应的数据之后,对其中的数据进行修改。

    对某个值进行修改

    例如,我们想对数据集中第2行第2列的数据进行修改:

    import pandas as pd
    import numpy as np
    dates = pd.date_range("2017-01-08", periods=6)
    data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
    print("data:")
    print(data)
    
    # 对第2行第2列的数据进行修改
    data.iloc[2, 2] = 111
    
    print("修改后的数据为:")
    print(data)
    

    输出为:

    data:
                 A   B   C   D
    2017-01-08   0   1   2   3
    2017-01-09   4   5   6   7
    2017-01-10   8   9  10  11
    2017-01-11  12  13  14  15
    2017-01-12  16  17  18  19
    2017-01-13  20  21  22  23
    修改后的数据为:
                 A   B    C   D
    2017-01-08   0   1    2   3
    2017-01-09   4   5    6   7
    2017-01-10   8   9  111  11
    2017-01-11  12  13   14  15
    2017-01-12  16  17   18  19
    2017-01-13  20  21   22  23
    

    根据筛选条件设置值

    比如,我们想对数据集中B列大于14的数据设置为14值,类似SQL中的:
    update table set B = 14 where B>14
    具体实现为:

    import pandas as pd
    import numpy as np
    dates = pd.date_range("2017-01-08", periods=6)
    data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
    print("data:")
    print(data)
    
    # 把B列中大于14的数设置为14
    data.B[data.B>14] = 14
    
    print("修改后的数据为:")
    print(data)
    
    

    输出为:

    data:
                 A   B   C   D
    2017-01-08   0   1   2   3
    2017-01-09   4   5   6   7
    2017-01-10   8   9  10  11
    2017-01-11  12  13  14  15
    2017-01-12  16  17  18  19
    2017-01-13  20  21  22  23
    修改后的数据为:
                 A   B   C   D
    2017-01-08   0   1   2   3
    2017-01-09   4   5   6   7
    2017-01-10   8   9  10  11
    2017-01-11  12  13  14  15
    2017-01-12  16  14  18  19
    2017-01-13  20  14  22  23
    
    

    增加一列

    增加一列空列数据:

    import pandas as pd
    import numpy as np
    dates = pd.date_range("2017-01-08", periods=6)
    data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
    print("data:")
    print(data)
    
    data["E"] = np.nan
    
    print("修改后的数据为:")
    print(data)
    
    

    输出为:

    data:
                 A   B   C   D
    2017-01-08   0   1   2   3
    2017-01-09   4   5   6   7
    2017-01-10   8   9  10  11
    2017-01-11  12  13  14  15
    2017-01-12  16  17  18  19
    2017-01-13  20  21  22  23
    修改后的数据为:
                 A   B   C   D   E
    2017-01-08   0   1   2   3 NaN
    2017-01-09   4   5   6   7 NaN
    2017-01-10   8   9  10  11 NaN
    2017-01-11  12  13  14  15 NaN
    2017-01-12  16  17  18  19 NaN
    2017-01-13  20  21  22  23 NaN
    
    

    这里,我们通过
    data["E"] = np.nan
    对数据集增加了一列空的数据。
    另外,这里不能使用data.E=np.nan的方式对数据集增加一列。

    当然,我们也可以把某列的数据增加到一列中:

    import pandas as pd
    import numpy as np
    dates = pd.date_range("2017-01-08", periods=6)
    data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C", "D"])
    print("data:")
    print(data)
    
    data["E"] = np.arange(6)
    
    
    print("修改后的数据为:")
    print(data)
    
    

    输出为:

    data:
                 A   B   C   D
    2017-01-08   0   1   2   3
    2017-01-09   4   5   6   7
    2017-01-10   8   9  10  11
    2017-01-11  12  13  14  15
    2017-01-12  16  17  18  19
    2017-01-13  20  21  22  23
    修改后的数据为:
                 A   B   C   D  E
    2017-01-08   0   1   2   3  0
    2017-01-09   4   5   6   7  1
    2017-01-10   8   9  10  11  2
    2017-01-11  12  13  14  15  3
    2017-01-12  16  17  18  19  4
    2017-01-13  20  21  22  23  5
    

    这样我们新增了一列E。

  • 相关阅读:
    Java中Vector和ArrayList的区别
    Java深拷贝与浅拷贝
    Java基础数据类型转换
    Java中的break Label 和continue Label
    java中关于Integer 和java 中方法参数传递
    网络虚拟化
    备份工具
    mysql文件理解
    mysql分区介绍
    进程间通信
  • 原文地址:https://www.cnblogs.com/dreampursuer/p/7839508.html
Copyright © 2020-2023  润新知