用Pandas精简数据输入

用Pandas精简数据输入

数据输入是将数据从不同的来源转移到一个方法的过程,在那里它可以被分析、归档或被一个机构利用。在这个过程中,通常的步骤是将数据从其当前的位置引出,转换数据,最后将其加载到一个位置,以便进行有效的研究。Python提供了许多这样的工具,以及数据摄取的框架。这些工具包括Bonobo、Beautiful Soup4、Airflow、Pandas等等。在这篇文章中,我们将学习使用Pandas库进行数据摄取。

用Pandas进行数据摄取:

Pandas的数据输入,是将数据从各种来源转移到PandasDataFrame结构中的过程。数据源可以是不同的文件格式,如逗号分隔数据、JSON、HTML网页表格、Excel。在这篇文章中,我们将学习,将数据,从这些格式,转移到目的地,也就是PandasDataFrame对象。

步骤:

将任何此类数据传输到DataFrame对象的基本方法如下

  • 准备好你的源数据。
  • 数据可以存在于任何远程服务器上,或者,在本地机器上。如果是在远程服务器上,我们需要知道文件的URL。如果数据存在于本地,则需要本地机器上的文件路径。
  • 使用潘达的’read_x’方法
  • Pandas提供了’read_x’方法,用于加载和转换数据,进入Dataframe对象。
  • 根据数据格式,使用 “读取 “方法。
  • 打印DataFrame对象的数据。
  • 打印DataFrame对象,以验证转换是否顺利。

摄取的文件格式:

在这篇文章中,我们将把以下文件中的数据转换为DataFrame结构

1.从CSV文件中读取数据
2.从Excel文件中读取数据
3.从JSON文件中读取数据
4.从剪贴板上读取数据
5.从网页的HTML表格中读取数据
6.从SQLite表中读取数据

从CSV文件中读取数据

为了加载逗号分隔文件(CSV)中的数据,我们将遵循以下步骤。

  • 准备好你的样本数据集。在这里,我们有一个CSV文件,包含了关于印度都市的信息。它描述了该城市是一线还是二线城市,它们的地理位置,它们所属的州,以及它是否是一个沿海城市。
  • 使用Pandas方法 “read_csv”。
  • 使用的方法 – read_csv(file_path)
  • 参数 – 字符串格式,包含文件的路径和它的名字,或者,如果在远程服务器上有URL。它读取文件数据,并将其转换为一个有效的二维DataFrame对象。这个方法可以用来读取以”.csv “和”.txt “文件格式存在的数据。

该文件内容如下。

用Pandas精简数据输入

gfg_indianmetros.csv “文件的内容

获取PandasDataFrame中的数据的代码是。

# Import the Pandas library
import pandas
  
# Load data from Comma separated file
# Use method - read_csv(filepath)
# Parameter - the path/URL of the CSV/TXT file
dfIndianMetros = pandas.read_csv("gfg_indianmetros.csv")
  
# print the dataframe object
print(dfIndianMetros)

输出:

用Pandas精简数据输入

CSV数据,以DataFrame为对象

从Excel文件中读取数据

为了加载Excel文件(.xlsx, .xls)中的数据,我们将按照以下步骤操作

  • 准备好你的样本数据集。在这里,我们有一个Excel文件,包含了关于面包店及其分店的信息。它描述了员工的数量,面包店的分支机构的地址。
  • 使用Pandas方法’read_excel’ .
  • 使用的方法 – read_excel(file_path)
  • 参数 – 该方法接受,文件的路径和它的名字,以字符串格式作为参数。该文件可以在远程服务器上,也可以在本地的机器上。它读取文件数据,并将其转换为一个有效的二维DataFrame对象。这个方法可以用来读取”.xlsx “和”.xls “文件格式中的数据。

该文件内容如下。

用Pandas精简数据输入

gfg_bakery.xlsx “文件的内容

在Pandas DataFrame中获取数据的代码是。

# Import the Pandas library
import pandas
  
# Load data from an Excel file
# Use method - read_excel(filepath)
# Method parameter - The file location(URL/path) and name
dfBakery = pandas.read_excel("gfg_bakery.xlsx")
  
# print the dataframe object
print(dfBakery)

输出:

用Pandas精简数据输入

Excel的数据,在DataFrame对象中

JSON文件中读取数据

为了加载JavaScript对象符号文件(.json)中的数据,我们将遵循以下步骤。

  • 准备好你的样本数据集。在这里,我们有一个JSON文件,包含关于国家和它们的拨号代码的信息。
  • 使用Pandas方法’read_json’ 。
  • 使用的方法 – read_json(file_path)
  • 参数 – 这个方法,接受文件的路径和它的名字,以字符串格式,作为一个参数。它读取文件数据,并将其转换为一个有效的二维DataFrame对象。

该文件内容如下。

用Pandas精简数据输入

gfg_codecountry.json “文件的内容

在Pandas DataFrame中获取数据的代码是。

# Import the Pandas library
import pandas
  
# Load data from a JSON file
# Use method - read_json(filepath)
# Method parameter - The file location(URL/path) and name
dfCodeCountry = pandas.read_json("gfg_codecountry.json")
  
# print the dataframe object
print(dfCodeCountry)

输出:

用Pandas精简数据输入

DataFrame对象中的JSON数据

从剪贴板上读取数据

我们也可以将剪贴板中的数据转移到一个DataFrame对象中。剪贴板是随机存取存储器(RAM)的一部分,复制的数据存在于其中。每当我们使用 “复制 “命令复制任何文件、文本、图像或任何类型的数据时,它都会被存储在剪贴板中。要转换这里的数据,请按照下面提到的步骤进行。

  • 选择该文件的所有内容。该文件应该是一个CSV文件。它也可以是一个’.txt’文件,包含逗号分隔的值,如例子所示。请注意,如果文件内容的格式不合适,那么,在运行时可能会出现解析器错误。
  • 右键单击并说复制。现在,这些数据被转移到电脑剪贴板上。
  • 使用Pandas方法’read_clipboard’ 。
  • 使用的方法 – read_clipboard
  • 参数 – 该方法不接受任何参数。它读取剪贴板中最新复制的数据,并将其转换为一个有效的二维DataFrame对象。

选择的文件内容如下。

用Pandas精简数据输入

gfg_clothing.txt “文件的内容

在Pandas DataFrame中获取数据的代码是。

# Import the required library
import pandas
  
# Copy file contents which are in proper format
# Whatever data you have copied will
# get transferred to dataframe object
# Method does not accept any parameter
pdCopiedData = pd.read_clipboard()
  
# Print the data frame object
print(pdCopiedData)

输出:

用Pandas精简数据输入

剪贴板的数据,以DataFrame为对象

从HTML文件中读取数据

一个网页通常由HTML元素组成。<head> <title> <table> <div>根据在浏览器上显示数据的目的,</div></table></title></head>有不同的HTML标签,如<head>、<title>、、<table>、<div>。我们可以将<table>HTML网页中的元素</table>内容转移<table>到Pandas DataFrame对象中。按照下面提到的步骤进行
</table></div></table></title></head>

  • 选择所有存在于<table>,开始和结束标签之间的</table>元素<table>。把它,分配给一个Python变量。
    </table>
  • 使用Pandas方法’read_html’ 。
  • 使用的方法 – read_html(<table>标签</table>内的字符串)<table>
    </table>
  • 参数 – 该方法接受字符串变量,包含<table>标签</table>之间存在的元素<table>。它读取这些元素,遍历表格<tr><td>标签,并将其转换为一个列表对象。列表对象的第一个元素是所需的DataFrame对象。
    </td></tr></table>

使用的HTML网页如下。

<!DOCTYPE html>
<html>
<head>
<title>Data Ingestion with Pandas Example</title>
</head>
<body>
<h2>Welcome To GFG</h2>
<table>
  <thead>
    <tr>
      <th>Date</th>
      <th>Empname</th>
      <th>Year</th>
      <th>Rating</th>
      <th>Region</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2020-01-01</td>
      <td>Savio</td>
      <td>2004</td>
      <td>0.5</td>
      <td>South</td>
    </tr>
    <tr>
      <td>2020-01-02</td>
      <td>Rahul</td>
      <td>1998</td>
      <td>1.34</td>
      <td>East</td>
    </tr>
    <tr>
      <td>2020-01-03</td>
      <td>Tina</td>
      <td>1988</td>
      <td>1.00023</td>
      <td>West</td>
    </tr>
     <tr>
      <td>2021-01-03</td>
      <td>Sonia</td>
      <td>2001</td>
      <td>2.23</td>
      <td>North</td>
    </tr>    
  </tbody>
</table>
</body>
</html>

编写以下代码来转换Pandas Dataframe对象中的HTML表格内容。

# Import the Pandas library
import pandas
  
  
# Variable containing the elements
# between <table> tag from webpage
html_string = """
<table>
  <thead>
    <tr>
      <th>Date</th>
      <th>Empname</th>
      <th>Year</th>
      <th>Rating</th>
      <th>Region</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2020-01-01</td>
      <td>Savio</td>
      <td>2004</td>
      <td>0.5</td>
      <td>South</td>
    </tr>
    <tr>
      <td>2020-01-02</td>
      <td>Rahul</td>
      <td>1998</td>
      <td>1.34</td>
      <td>East</td>
    </tr>
    <tr>
      <td>2020-01-03</td>
      <td>Tina</td>
      <td>1988</td>
      <td>1.00023</td>
      <td>West</td>
    </tr>
     <tr>
      <td>2021-01-03</td>
      <td>Sonia</td>
      <td>2001</td>
      <td>2.23</td>
      <td>North</td>
    </tr>
    <tr>
      <td>2008-01-03</td>
      <td>Milo</td>
      <td>2008</td>
      <td>3.23</td>
      <td>East</td>
    </tr>
    <tr>
      <td>2006-01-03</td>
      <td>Edward</td>
      <td>2005</td>
      <td>0.43</td>
      <td>West</td>
    </tr>
  </tbody>
</table>"""
  
# Pass the string containing html table element
df = pandas.read_html(html_string)
  
# Since read_html, returns a list object,
# extract first element of the list
dfHtml = df[0]
  
# Print the data frame object
print(dfHtml)

输出:

用Pandas精简数据输入

HTML<table>数据,在DataFrame对象中</table><table></table>

从SQL表中读取数据

我们也可以将数据库表中的数据转换为有效的DataFrame对象。Python允许轻松地与各种数据库接口,如SQLiteMySQL、MongoDB等。SQLite是一个轻量级的数据库,它可以嵌入到任何程序中。SQLite数据库持有所有相关的SQL表。我们可以将SQLite表的数据加载到Pandas数据框对象中。按照下面提到的步骤

  • 使用 “DB Browser for SQLite工具 “或任何此类工具准备一个SQLite表样本。这些工具可以毫不费力地创建、编辑与SQLite兼容的数据库文件。数据库文件,有一个’.db’文件扩展名。在这个例子中,我们有‘Novels.db’文件,包含一个叫做 “novels “的表。这个表有关于小说的信息,如小说名称、价格、流派等。
  • 在这里,为了连接到数据库,我们将在代码中导入 “sqlite3 “模块。sqlite3模块是一个接口,用于连接到SQLite数据库。从Python 2.5版本开始,sqlite3库就包含在Python中。因此,不需要单独安装。为了连接到数据库,我们将使用 SQLite 方法 ‘connect’,它返回一个连接对象。该连接方法接受以下参数。
  • database_name – 表所在的数据库的名称。这是一个扩展名为.db的文件。如果该文件存在,将返回一个开放的连接对象。如果文件不存在,会先创建它,然后返回一个连接对象。
  • 使用Pandas方法 “read_sql_query”。
  • 使用的方法 – read_sql_query
  • 参数 – 该方法接受以下参数
  • SQL查询 – 选择查询,从表中获取所需的行。
  • 连接对象 – 由’connect’方法返回的连接对象。read_sql_query方法,将查询的结果行转换为一个数据帧对象。
  • 使用打印方法打印DataFrame对象。

Novels.db数据库文件看起来如下 –

用Pandas精简数据输入

使用DB Browser for SQLite工具看到的小说表

编写以下代码,在PandasDataFrame对象中,转换小说表。

# Import the required libraries
import sqlite3
import pandas
  
# Prepare a connection object
# Pass the Database name as a parameter
conn = sqlite3.connect("Novels.db")
  
# Use read_sql_query method
# Pass SELECT query and connection object as parameter
pdSql = pd.read_sql_query("SELECT * FROM novels", conn)
  
# Print the dataframe object
print(pdSql)
  
# Close the connection object
conn.close()

输出:

用Pandas精简数据输入

DataFrame对象中的小说表数据

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程