Pandas中的两个主要数据结构是:Series和DataFrame。Series是类似于一维数组的对象.DataFrame是矩形的数据表,它含有一组有序且有命名的列,每一列可以是不同的数据类型(数值、字符串、布尔值等)。

        DataFrame既有行索引也有列索引,可以看作由共用同一个索引的Series组成的字典。

(1)等长列表构成的字典创建DataFrame

  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data)
    print(frame)
    DataFrame自动添加列左侧索引,这一点和Series是一样的。
  •   China   USA England
    0    北京   芝加哥      伦敦
    1    上海   华盛顿    曼彻斯特
    2    南京    纽约     利物浦
    3    杭州  阿拉斯加     利兹联
         head()函数用于显示头部行数,如head(2)用于显示前面两行,如下所示,如果不加参数,则默认显示5行。tail()函数用于显示后面的行数,用法和head()函数一致。
  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data)
    print(frame.head(2))
      China  USA England
    0    北京  芝加哥      伦敦
    1    上海  华盛顿    曼彻斯特

    (2)按指定列排序:frame=pd.DataFrame(data,columns=["China","England","USA"])

  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA"])
    print(frame)
      China England   USA
    0    北京      伦敦   芝加哥
    1    上海    曼彻斯特   华盛顿
    2    南京     利物浦    纽约
    3    杭州     利兹联  阿拉斯加

    frame=pd.DataFrame(data,columns=["China","England","USA"]),用于指定列的顺序,指定后顺序由China,USA,England变成了China,England,USA。

  • 在Pandas中,有两种方式输出一列的值。

    import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA"])
    print(frame["China"])
    0    北京
    1    上海
    2    南京
    3    杭州
    Name: China, dtype: object
    import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA","France"])
    print(frame.China)
    0    北京
    1    上海
    2    南京
    3    杭州
    Name: China, dtype: object

    (3)指定列不存在,如指定包含“France”,其不存在,显示结果,整个一列都是NaN

  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA","France"])
    print(frame)
    
      China England   USA France
    0    北京      伦敦   芝加哥    NaN
    1    上海    曼彻斯特   华盛顿    NaN
    2    南京     利物浦    纽约    NaN
    3    杭州     利兹联  阿拉斯加    NaN

    (4)给不存在的列赋值

  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA","France"])
    frame.France=["巴黎","里昂","aa","bb"]
    print(frame)
      China England   USA France
    0    北京      伦敦   芝加哥     巴黎
    1    上海    曼彻斯特   华盛顿     里昂
    2    南京     利物浦    纽约     aa
    3    杭州     利兹联  阿拉斯加     bb

    (5)删除一列(del frame["France"])

  • import pandas as pd
    data={"China":["北京","上海","南京","杭州"],
          "USA":["芝加哥","华盛顿","纽约","阿拉斯加"],
          "England":["伦敦","曼彻斯特","利物浦","利兹联"]
          }
    frame=pd.DataFrame(data,columns=["China","England","USA","France"])
    frame.France=["巴黎","里昂","aa","bb"]
    print(frame)
    del frame["France"]
    print(frame)
      China England   USA France
    0    北京      伦敦   芝加哥     巴黎
    1    上海    曼彻斯特   华盛顿     里昂
    2    南京     利物浦    纽约     aa
    3    杭州     利兹联  阿拉斯加     bb
      China England   USA
    0    北京      伦敦   芝加哥
    1    上海    曼彻斯特   华盛顿
    2    南京     利物浦    纽约
    3    杭州     利兹联  阿拉斯加
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐