Creating, Reading and Writing(pandas学习一)

开始入门

要使用pandas库,通常从以下这行代码开始。

import pandas as pd

创建数据

pandas 中有两个核心对象:DataFrame(数据框)和 Series(系列)。

DataFrame

  • DataFrame是一个表格。它包含一个单独条目的数组,每个条目都有特定的值。每个条目对应一行(或一条记录)和一列。

    pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]})
    

    输出如下:
    output
    在这个例子中,“0, No”条目的值为 131。“0, Yes”条目的值为 50,依此类推。

  • DataFrame的条目不限于整数。例如,这里有一个DataFrame,其值为字符串:

    pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 'Sue': ['Pretty good.', 'Bland.']})
    

    输出如下:
    output
    我们使用pd.DataFrame()构造函数来生成这些DataFrame对象。声明对象的语法是字典,其键是列名(本例中为Bob和Sue),其值是条目列表。这是构造DataFrame的标准方法,也是最有可能遇到的方法。

  • 字典列表构造函数为列标签赋值,但只对行标签使用从0(0,1,2,3,…)开始的升序计数。有 时这是可以的,但通常我们希望自己分配这些标签。

    DataFrame()中使用的行标签列表被称为索引。我们可以在构造函数中使用索引参数为其分配值:

    pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 
                  'Sue': ['Pretty good.', 'Bland.']},
                 index=['Product A', 'Product B'])
    

    输出如下:
    output

Series

  • 与之相反,Series 是一系列数据值。如果说DataFrame是一个表格,那么 Series 就是一个列表。实际上,仅用一个列表就可以创建一个Series

    pd.Series([1, 2, 3, 4, 5])
    

    输出如下:
    output

  • Series本质上是DataFrame的单个列。因此,可以像以前一样使用index参数为Series分配行标签。但是,Series没有列名,它只有一个整体名称:

    pd.Series([30, 35, 40], index=['2015 Sales', '2016 Sales', '2017 Sales'], name='Product A')
    

    输出如下:
    output

  • SeriesDataFrame密切相关。将DataFrame想象成实际上只是一堆 “粘在一起” 的Series是很有帮助的。

读取数据文件

  • 能够手动创建数据框或序列很方便。但是,在大多数情况下,我们实际上不会手动创建自己的数据。相反,我们将处理已经存在的数据。

  • 数据可以以多种不同的形式和格式存储。其中最基本的当属CSV文件。当你打开一个CSV文件时,会看到如下内容:
    csv
    一个 CSV 文件是由逗号分隔的值组成的表格。因此得名:"Comma-Separated Values",即 CSV

  • 我们将使用 pd.read_csv () 函数将数据读入数据框。具体如下:

    wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv")
    
    • 我们可以使用 shape 属性来检查生成的 DataFrame 的大小。

      wine_reviews.shape
      

      output

      所以我们的DataFrame有 130000 条记录分布在 14 个不同的列中。那几乎是 200 万个条目!

    • 我们可以使用head()命令检查结果数据框的内容,该命令会抓取前五行。

      wine_reviews.head()
      

      output

    • pd.read_csv()函数功能强大,可以指定30多个可选参数。例如,您可以在这个数据集中看到CSV文件有一个内置索引,pandas没有自动获取该索引。要使pandas使用该列作为索引(而不是从头开始创建一个新列),我们可以指定一个index_col

      wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
      wine_reviews.head()
      

      output

posted @ 2024-10-03 16:51  hisun9  阅读(3)  评论(0编辑  收藏  举报