#10 Pandas教学2

新增删除操作

# 载入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典来建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)## 新增删除操作
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """
    
    # 新增一列
    data.loc[4] = ["Toyota Supra", True, 2480000]
    print(data)
    """
              brand   auto    price
    0     Toyota 86  False  1300000
    1    Subaru BRZ   True  1320000
    2   NISSAN GT-R   True  6750000
    3    MAZDA MX-5  False  1340000
    4  Toyota Supra   True  2480000
    """

    # 新增一栏
    data["color"] = ["黑", "银", "黑", "红", "蓝"]
    print(data)
    """
              brand   auto    price color
    0     Toyota 86  False  1300000     黑
    1    Subaru BRZ   True  1320000     银
    2   NISSAN GT-R   True  6750000     黑
    3    MAZDA MX-5  False  1340000     红
    4  Toyota Supra   True  2480000     蓝

    """

    # 删除一列,axis = 0表示删除列
    data = data.drop([2], axis = 0)
    print(data)
    """
              brand   auto    price color
    0     Toyota 86  False  1300000     黑
    1    Subaru BRZ   True  1320000     银
    3    MAZDA MX-5  False  1340000     红
    4  Toyota Supra   True  2480000     蓝
    """
    # 删除一栏,axis = 1表示删除栏
    data = data.drop(["color"], axis = 1)
    print(data)
    """
              brand   auto    price
    0     Toyota 86  False  1300000
    1    Subaru BRZ   True  1320000
    3    MAZDA MX-5  False  1340000
    4  Toyota Supra   True  2480000
    """

自订索引

这里要注意,当我们要操作一列时,我们会使用loc属性,loc的中括号必须放索引,但有的时候索引可能不是数字,这时候如果还是想用数字来存取资料,必须使用iloc属性

# 载入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典来建立DataFrame ,索引为["A", "B", "C", "D"]
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d, index = ["A", "B", "C", "D"])
    print(data)
    """
             brand   auto    price
    A    Toyota 86  False  1300000
    B   Subaru BRZ   True  1320000
    C  NISSAN GT-R   True  6750000
    D   MAZDA MX-5  False  1340000
    """

    #使用索引存取一列
    print(data.loc["C"])
    """
    brand    NISSAN GT-R
    auto            True
    price        6750000
    Name: C, dtype: object
    """

    #存取由上往下数的第3列(从0开始数)
    print(data.iloc[3])
    """
    brand    MAZDA MX-5
    auto          False
    price       1340000
    Name: D, dtype: object
    """

把某栏设为索引

# 载入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典来建立DataFrame,把brand栏位设为索引
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    data = data.set_index("brand")
    print(data)
    """
                  auto    price
    brand                      
    Toyota 86    False  1300000
    Subaru BRZ    True  1320000
    NISSAN GT-R   True  6750000
    MAZDA MX-5   False  1340000
    """

    #使用索引存取一列
    print(data.loc["Toyota 86"])
    """
    auto       False
    price    1300000
    Name: Toyota 86, dtype: object
    """

    #存取由上往下数的第2列(从0开始数)
    print(data.iloc[2])
    """
    auto        True
    price    6750000
    Name: NISSAN GT-R, dtype: object
    """

过滤资料

# 载入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典来建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)## 新增删除操作
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """

    #利用布林遮罩来过滤资料
    mask = data["auto"]  == False
    print(mask)
    """
    0     True
    1    False
    2    False
    3     True
    Name: auto, dtype: bool
    """
    print(data[mask])
    """
            brand   auto    price
    0   Toyota 86  False  1300000
    3  MAZDA MX-5  False  1340000
    """
    print(data[mask]["brand"])
    """
    0     Toyota 86
    3    MAZDA MX-5
    Name: brand, dtype: object
    """
    print(data[mask].iloc[0])
    """
    brand    Toyota 86
    auto         False
    price      1300000
    Name: 0, dtype: object
    """
    #计算手排车的平均价格
    print(data[mask]["price"].mean()) #1320000.0

修改符合条件的资料

# 载入pandas
import pandas as pd

if __name__ == "__main__":
    # 以字典来建立DataFrame
    d = {
        "brand":["Toyota 86", "Subaru BRZ", "NISSAN GT-R", "MAZDA MX-5"],
        "auto":[False, True, True, False],
        "price":[1300000, 1320000, 6750000, 1340000],
        }
    data = pd.DataFrame(d)
    print(data)## 新增删除操作
    """
             brand   auto    price
    0    Toyota 86  False  1300000
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False  1340000
    """

    #利用布林遮罩来过滤资料
    mask = data["auto"] == False
    #将auto栏位为False的那些资料(手排车)的price栏位设为0
    data["price"][mask] = 0
    print(data)
    """
             brand   auto    price
    0    Toyota 86  False        0
    1   Subaru BRZ   True  1320000
    2  NISSAN GT-R   True  6750000
    3   MAZDA MX-5  False        0
    """

<<:  Day24-操作DOM

>>:  Day 11 : PHP - 如何将HTML的内容传送到PHP?POST和GET又该如何选择?

Program Loader

之前写了一个很简单的 Program Loader, 现在就来真正的实作它,让它能够把编译好的程序放...

Dungeon Mizarka 012

今天一样是要利用Editor Script进行少部份量化的工作,已经了解了怎麽样用Editor Sc...

第30天:终於撑到完赛QQ-JavaScript技术手册阅读笔记

四开四个主题实在太累,JavaScript技术手册阅读笔记这个主题就是读这本书买很久的书,顺便把之前...

CompTIA Security + Exam Questions Answers For IT Professionals

Pass CompTIA Security+. This will enable you to pa...

ISO 27001 资讯安全管理系统 【解析】(五)

三、建立外部背景 外部背景是组织寻求达成目标的外部环境。了解外部背景非常重要,是为了确保在订定安全风...