使用 to_sql 将 Python Pandas DataFrame 导出到 SQL

2023-10-19

The to_sql函数允许您将存储在 DataFrame 中的记录写入 SQL 数据库。通过使用 SQLAlchemy,可以使用该库支持的任何数据库。

在接下来的部分中,我们将更深入地研究此功能并探索更多功能。

 

 

基本语法和用法

的基本语法to_sql函数如下:


DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
  

让我们简单讨论一下每个参数:

    • name:您将向其写入 DataFrame 的 SQL 表的名称。
    • con:SQLAlchemy 引擎或 DBAPI2 连接。使用 SQLAlchemy 可以使用该库支持的任何数据库。
    • schema:数据库中要写入的 SQL 模式的名称(可选)。
    • 如果存在: 如果数据库中已经存在该表怎么办。选项包括:“失败”(默认)、“替换”和“追加”。
    • index:是否写入DataFrame的索引。默认为 True。
    • 索引标签:用于 DataFrame 索引的列标签。如果 DataFrame 使用 MultiIndex,则这应该是一个序列。如果None给定并且 DataFrame 使用 MultiIndex,将使用索引名称。
    • 块大小:行将一次按此大小批量写入。如果None给定后,所有行将被立即写入。
    • dtype:SQLAlchemy 类型的列名字典(或 SQLite3 传统模式的字符串)。这用于覆盖 Pandas 推断的默认数据类型。
    • method:控制使用的 SQL 插入子句。 0.24.0 版本中的新增内容。

 

连接到各种数据库

The to_sql函数于Pandas需要 SQLAlchemy 引擎或 sqlite3 数据库连接。建立这些连接有两种主要方法:

SQLite:SQLite 是一个提供关系数据库管理系统的软件库。它是一个独立、无服务器、零配置的数据库引擎。要创建与 SQLite 的连接,您可以使用sqlite3模块Python 标准库附带的:


import sqlite3
conn = sqlite3.connect('my_database.db')
  

SQL炼金术:SQLAlchemy 提供了一个通用接口,用于创建与不同数据库系统(包括 MySQL、PostgreSQL 和 Oracle)的连接。

但是,出于本教程的目的,我们将使用 SQLAlchemy,因为 SQLAlchemy 使得可以使用该库支持的任何数据库,包括 SQLite。

 

SQLite

要使用 SQLAlchemy 建立与 SQLite 数据库的连接,您可以执行以下操作:


from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
  

在此示例中,我们创建了一个使用存储在内存中的 SQLite 数据库的引擎。这是一个特殊情况,非常适合测试和开发,因为您不必担心清理测试数据库。
然而,更常见的是,您希望将 SQLite 数据库存储在磁盘上的文件中。在这种情况下,您只需提供相对或绝对文件路径即可create_engine函数而不是“:内存:”:


from sqlalchemy import create_engine
engine = create_engine('sqlite:///my_database.db')
  

这里,“my_database.db”是 SQLite 数据库文件的名称。如果该文件不存在,SQLAlchemy 将在建立连接时自动创建它。

MySQL

连接 MySQL 最常见的驱动程序是mysqlclient,但其他人喜欢PyMySQL也可用。以下是建立与 MySQL 数据库的连接的方法:


from sqlalchemy import create_engine
engine = create_engine('mysql+mysqldb://username:password@localhost/db_name')
  

在此连接字符串中,“username”和“password”是您的 MySQL 用户名和密码,“localhost”是运行 MySQL 服务器的主机,“db_name”是您要连接的数据库的名称。
如果您使用不同的驱动程序,请将“mysqldb”替换为适当的名称。

例如,如果您使用 PyMySQL,您的连接字符串将如下所示:


from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://username:password@localhost/db_name')
  

请注意,您需要安装必要的 MySQL 驱动程序才能建立连接。为了mysqlclient,您可以通过 pip 安装它:


pip install mysqlclient
  

对于 PyMySQL:


pip install PyMySQL
  

 

PostgreSQL

您可以使用psycopg2库作为 SQLAlchemy 连接到 PostgreSQL 数据库的驱动程序。
以下是连接到 PostgreSQL 数据库的方法:


from sqlalchemy import create_engine
engine = create_engine('postgresql://username:password@localhost/db_name')
  

在此连接字符串中,“username”和“password”是您的 PostgreSQL 用户名和密码,“localhost”是运行 PostgreSQL 服务器的主机,“db_name”是您要连接的数据库的名称。
注意:您需要拥有psycopg2安装库以建立连接。您可以使用 pip 安装它:


pip install psycopg2
  

如果您安装时遇到问题psycopg2,尝试安装psycopg2-binary反而:


pip install psycopg2-binary
  

 

Oracle

您可以使用cx_Oracle用于连接到 Oracle 数据库的库。以下是建立与 Oracle 数据库的连接的方法:


from sqlalchemy import create_engine
engine = create_engine('oracle+cx_oracle://username:password@localhost:1521/sid')
  

在此连接字符串中,“username”和“password”是您的 Oracle 用户名和密码,“localhost”是运行 Oracle 服务器的主机,“1521”是 Oracle 服务器正在侦听的端口,“sid”是您要连接的 Oracle 数据库的系统 ID (SID)。
请注意,您需要拥有cx_Oracle安装库以建立连接。您可以使用 pip 安装它:


pip install cx_Oracle
  

请记住,您还需要在计算机上安装 Oracle 客户端库。您可以从 Oracle 网站下载它们。

 

使用 Pandas to_sql 将 DataFrame 导出到 SQL

现在我们知道如何使用 SQLAlchemy 连接到各种数据库,让我们深入了解如何使用to_sql函数将数据从 Pandas DataFrame 写入 SQL 数据库。
让我们从创建一个简单的数据框:


import pandas as pd
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
print(df)
  

Output:


    Name  Age      City
0   John   28  New York
1   Anna   24     Paris
2  Peter   35    Berlin
3  Linda   32    London
  

现在,假设我们有一个 SQLite 数据库,并且希望将此 DataFrame 写入数据库中的表中。我们需要首先创建一个 SQLAlchemy 引擎:


from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
  

然后,我们可以使用to_sql将 DataFrame 写入 SQLite 数据库:


df.to_sql('People', con=engine, if_exists='replace', index=False)
  

在此示例中,我们将 DataFrame 写入名为“People”的表。这if_exists='replace'参数告诉 Pandas 替换该表(如果它已经存在)。这index=False参数告诉 Pandas 不要将 DataFrame 的索引写入 SQL 表。
然后,您可以使用以下命令验证数据是否已写入 SQLite 表read_sql:


result_df = pd.read_sql('People', con=engine)
print(result_df)
  

Output:


    Name  Age      City
0   John   28  New York
1   Anna   24     Paris
2  Peter   35    Berlin
3  Linda   32    London
  

如您所见,我们已成功将 DataFrame 写入 SQL 表并从表中取回数据。

 

了解 if_exists 参数

The if_exists中的参数to_sql函数控制表已存在于数据库中时的行为方式。该参数可以接受三个可能的值:“fail”、“replace”和“append”。

选择正确的值if_exists非常重要,因为它可能会导致不同的结果。您必须仔细考虑是否要替换整个表、追加到表中,或者在表存在的情况下失败。

 

自定义数据类型和转换

使用以下命令将 DataFrame 写入 SQL 数据库时to_sql,pandas自动将DataFrame的数据类型转换为SQL类型。

但是,有时您可能想要为某些列指定自定义 SQL 数据类型。您可以使用dtype的论证to_sql.
The dtype参数应该是一个字典,其中键是列名,值应该是 SQLAlchemy 类型或 SQLite3 旧模式的字符串。
例如,假设我们有一个包含“Name”(字符串)、“Age”(整数)和“Salary”(浮点数)列的 DataFrame。

我们可以指定“Age”应在 SQL 数据库中存储为整数,“Salary”应存储为浮点数,如下所示:


from sqlalchemy.types import Integer, Float
df.to_sql('Employees', con=engine, if_exists='replace', index=False,
          dtype={'Name': String, 'Age': Integer, 'Salary': Float})
  

在此示例中,“Name”将存储为字符串,“Age”将存储为整数,“Salary”将存储为 SQL 表中的浮点数。
使用时请注意dtype,如果支持,pandas 将尝试将每个 DataFrame 列的类型与 SQLAlchemy 匹配。如果没有,它将使用该列数据类型的默认 SQL 类型。
同样重要的是要记住,并非所有 SQL 数据库都支持所有数据类型,因此dtype应谨慎使用论证。

 

指数管理

在pandas中,当创建DataFrame时,也会自动生成索引。该索引可以基于一列或多列,分别形成单个索引或多个索引。

当我们想要获取或操作数据时,索引特别有用。
In the to_sql函数中,我们可以通过使用以下命令来控制是否要将DataFrame的索引写入SQL数据库index范围。

If index=True(这是默认设置),索引将作为单独的列写入 SQL 数据库。如果index=False,索引不会被写入。


df.to_sql('Employees', con=engine, if_exists='replace', index=False)
  

 

多索引支持

MultiIndex 或分层索引是一种特殊类型的索引,它允许您在单个轴上拥有多个级别的索引。

如果DataFrame使用MultiIndex,则可以使用以下命令将其写入SQL数据库to_sql函数,每个级别的索引在数据库中形成一个单独的列。
让我们看一个例子,其中有一个带有 MultiIndex 的 DataFrame:


index = pd.MultiIndex.from_tuples([(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'blue')],
                                  names=['number', 'color'])
df = pd.DataFrame({'Name': ['John', 'Anna', 'Peter', 'Linda'],
                   'Age': [28, 24, 35, 32]}, index=index)

df.to_sql('People', con=engine, if_exists='replace')
  

在这种情况下,DataFrame使用MultiIndex(‘number’和‘color’),并且在使用时,每个级别的索引将被写入SQL数据库中的单独列to_sql.

 

管理插入(无、多、可调用)

您可以使用method使用时的参数to_sql方法来控制如何将数据插入到 SQL 数据库中。

您可以使用三个主要选项:None, multi, or a callable.

让我们从创建一个简单的 DataFrame 开始:


import pandas as pd
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
  

None
When method=None,DataFrame 的每一行将单独写入 SQL 表。这是默认行为:


df.to_sql('People', con=engine, if_exists='replace', index=False, method=None)
  

Multi
When method='multi',将一次写入多行。这可以提高性能,特别是对于较大的 DataFrame:


df.to_sql('People', con=engine, if_exists='replace', index=False, method='multi')
  

可调用(自定义插入)
对于可调用方法,可以定义自定义函数来修改SQL插入语句:


def insert_with_replace(dataframe, conn, keys, data_iter):
    raw_conn = conn.raw_connection()
    cursor = raw_conn.cursor()
    insert_statement = "INSERT OR REPLACE INTO People VALUES (?, ?, ?)"
    cursor.executemany(insert_statement, data_iter)
    raw_conn.commit()

df.to_sql('People', con=engine, if_exists='replace', index=False, method=insert_with_replace)
  

在此示例中,我们定义了一个自定义函数,用“INSERT OR REPLACE”语句替换标准 SQL INSERT 语句。

这会将新行插入“People”表中,但如果已存在具有相同主键的行,则该行将被替换。
在这三种方法中,我们可以通过从表中取回数据来验证数据是否已写入:


result_df = pd.read_sql('People', con=engine)
print(result_df)
  

Output:


    Name  Age      City
0   John   28  New York
1   Anna   24     Paris
2  Peter   35    Berlin
3  Linda   32    London
  

 

处理大数据集

当您处理大型 DataFrame 时,由于内存限制,将整个 DataFrame 一次性写入 SQL 数据库可能不可行。在这种情况下,pandas 提供了以块的形式写入数据的选项。
您可以使用chunksize的参数to_sql函数定义一次应写入的行数。

让我们考虑一个大的 DataFramedf有 100,000 行。我们可以将这些数据以 10,000 行为单位写入 SQL 数据库,如下所示:


df.to_sql('LargeTable', con=engine, if_exists='replace', index=False, chunksize=10000)
  

在此示例中,pandas 将一次向“LargeTable”插入 10,000 行。
但是,您应该注意使用chunksize可能会增加将整个 DataFrame 写入 SQL 数据库所需的总时间,因为 Pandas 需要为每个块创建一个新的 SQL 插入语句。

 

进一步阅读

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 to_sql 将 Python Pandas DataFrame 导出到 SQL 的相关文章

  • 在Python中解析空选项

    我有一个应用程序 允许您将事件数据发送到自定义脚本 您只需布置命令行参数并指定什么事件数据与什么参数相匹配 问题是这里没有真正的灵活性 您制定的每个选项都将被使用 但并非每个选项都必须有数据 因此 当应用程序构建要发送到脚本的字符串时 某些
  • 将 python scikit learn 模型导出到 pmml

    我想将 python scikit learn 模型导出到 PMML 中 什么 python 包最适合 我读到Augustus https github com opendatagroup augustus 但我找不到任何使用 scikit
  • 不要在异常堆栈中显示 Python raise-line

    当我在 Python 库中引发自己的异常时 异常堆栈将引发行本身显示为堆栈的最后一项 这显然不是一个错误 在概念上是正确的 但是当您在外部使用代码 例如作为模块 时 它会将重点放在对调试无用的东西上 有没有办法避免这种情况并强制 Pytho
  • 为什么 Dash 在上传文件时会出现解析错误?

    上传 Excel 或 CSV 会导致错误 我遵循了 Dash 演示 但是当我尝试扩展它来执行绘图之类的操作时 它就不起作用了 我不想只显示一张桌子 Dash Table 函数已更新 因此之前使用 Dash Table Experiments
  • 如何在Python中通过URL下载Azure Blob存储文件?

    我正在尝试从我的存储帐户下载 Azure Blob 存储文件 为此 我检查了 URL 是什么 并且正在执行以下操作 with urllib request urlopen
  • 在 AWS Elastic Beanstalk 中部署 Flask 应用程序

    当我部署 Flask 应用程序时 它显示成功 但是当我检索日志时 我看到错误 找不到 Flask 我的需求文件中有烧瓶 任何帮助 Sat Jan 11 06 51 50 503908 2020 error pid 3393 remote 1
  • PyKCS11 不可哈希列表

    我的 python 脚本旨在获取特定 so 库中插槽 令牌的详细信息 输出如下所示 Library manufacturerID Safenet Inc Available Slots 4 Slot no 0 slotDescription
  • 为什么通过selenium切换到alert不稳定?

    为什么通过selenium切换到alert不稳定 例如 1 运行代码 一切顺利 一切都很顺利 但如果这段代码在几分钟内运行 那么可能会出现错误 例如 没有可以单击的元素 等等 2 在一个站点上有一个警报窗口 alert driver swi
  • Unpickle 二进制文件为文本[重复]

    这个问题在这里已经有答案了 我需要对基本上如下所示的系统进行一些维护 复杂的遗留Python程序 gt 二进制pickle文件 gt 另一个复杂的遗留Python程序 这需要准确弄清楚中间 pickle 文件中的内容 我怀疑文件格式比生成和
  • 如何将 NaN 数组插入 numpy 二维数组

    我试图在二维数组中的特定位置插入任意数量的 NaN 值行 我正在将来自微控制器的一些数据记录在 csv 文件中并使用 python 进行解析 数据存储在 3 列 2D 数组中 如下所示 122 0 1 0 47 0 123 0 1 0 47
  • 在 Django 1.9 中使用信号

    在 Django 1 8 中 我能够使用信号执行以下操作 一切顺利 init py from signals import 信号 py receiver pre save sender Comment def process hashtag
  • 插入失败“OperationalError:没有这样的列”

    我尝试使用我尝试修复的姓名和电话创建一个数据库 但它会随时向我重播 File exm0 py line 14 in
  • numpy.polyfit 没有关键字“cov”

    我试图使用 polyfit 来找到一组数据的最佳拟合直线 但我还需要知道参数的不确定性 所以我也想要协方差矩阵 在线文档建议我写 polyfit x y 2 cov True 但这给出了错误 类型错误 polyfit 得到了意外的关键字参数
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • 分别计算男女宿舍

    我想要的结果是这样的 males 1990 Q1 value Q2 value Q3 Value Q4 Value females Q1 value Q2 value Q3 Value Q4 value 如果任何值不存在则默认值 0 imp
  • 嵌套 for 循环以列出具有不同“if”条件的理解

    我正在尝试将此嵌套循环转换为列表理解 但我不确定是否可能 因为 tmp 列表中的项目可能有不同的值 这是最好的方法吗 谢谢 final for a in range 13 1 for b in range 0 4 for c in rang
  • 帮助我在 Python 中实现反向传播

    EDIT2 新的训练集 Inputs 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 0 0 1 0 1 0 1 0 2 0 1 0 3 0 1 0 4 0 2 0 0 0 2 0 1 0 2 0 2
  • Python 中的“lambda”是什么意思,最简单的使用方法是什么?

    您能否给出一个示例和其他示例来说明何时以及何时不使用 Lambda 我的书给了我一些例子 但它们很令人困惑 拉姆达 起源于拉姆达演算 http en wikipedia org wiki Lambda calculus和 AFAIK 首先实
  • 在 Seaborn 中的 distplot 或 kdeplot 的平均峰值处绘制一个点

    我感兴趣的是自动绘制分布平均峰值上方的点 由 kdeplot 或带有 kde 的 distplot 表示 手动绘制点和线很简单 但我很难推导出这个最大坐标点 例如 下面生成的 kdeplot 应该在大约 3 5 1 0 处绘制一个点 iri
  • Python list.extend() 是保序的吗?

    我想知道扩展函数是否保留两个列表中的顺序 gt gt list 1 2 3 gt gt list extend 4 5 gt gt list 1 2 3 4 5 扩展总是这样工作吗 Yes list extend just extends给

随机推荐

  • 20 个常见的 JavaScript 面试问题和答案

    JavaScript 是世界上最流行的编程语言之一 因此 这也是技术面试中最常被问到的话题之一 无论您是初学者还是经验丰富的开发人员 为 JavaScript 面试问题做好充分准备都很重要 在本文中 我们将讨论 20 个常见的 JavaSc
  • 如何在 Ubuntu 15.10、14.04 和 12.04 上安装 RabbitVCS

    兔子VCS是版本管理系统 SVN 和 Git 的图形客户端 它提供了一个简单且易于使用的图形用户界面 可以说 RabbitVCS 是 TortoiseSVN 的最佳 Linux 替代品 本教程将帮助您在 Ubuntu 15 10 14 04
  • 如何更改 Linux 内核中的 Swappiness 值

    Swappiness 是一个 Linux 内核参数 用于控制交换空闲进程和使用可用 RAM 内存之间的平衡 大多数Linux发行版中的默认交换值是60 这意味着当可用内存低于40 时系统开始交换进程 但是 此默认值可能并不适合所有情况 更改
  • Linux 中的 du 命令及有用示例

    du 是缺少磁盘使用 这意味着 du 命令计算文件在磁盘上使用的大小 它是Linux系统用户经常使用的基本Linux命令 Syntax du OPTION FILE 在本教程中 您将通过有用的示例了解 du 命令在 Linux 中的用法 d
  • 如何在 PHP 中向数组追加项目

    问题 如何在 PHP 中向数组追加项目 如何在 PHP 中将任何元素追加到现有数组的末尾 如何在 PHP 中将元素推送到数组 本教程使用数组推 函数将新元素插入或追加到数组末尾 PHP 将元素追加到数组 以下示例创建一个包含两个元素 如 b
  • 如何在 Ubuntu 18.04 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中
  • 如何在 CentOS 7 上安装 Python 3

    本教程将指导您使用 Software Collections SCL 以及发行版默认 Python 版本 2 7 在 CentOS 7 系统上安装 Python 3 我们还将向您展示如何创建 Python 虚拟环境 Python 是世界上最
  • 如何在 Debian 10 Linux 上安装 Vagrant

    Vagrant是一个用于构建和管理虚拟机环境的开源命令行工具 默认情况下 Vagrant 可以在 VirtualBox Hyper V 之上配置计算机 和码头工人 其他提供商如 Libvirt KVM VMware 和 AWS 可以通过 V
  • Linux 中的 Wget 命令及示例

    GNU Wget 是一个用于从网络下载文件的命令行实用程序 使用 Wget 您可以使用 HTTP HTTPS 和 FTP 协议下载文件 Wget 提供了许多选项 允许您下载多个文件 恢复下载 限制带宽 递归下载 后台下载 镜像网站等等 本文
  • 如何在 Ubuntu 20.04 上安装 Odoo 15

    Odoo 是一款流行的开源商业应用程序套件 可帮助公司管理和运营其业务 它包括广泛的应用程序 例如 CRM 电子商务 网站构建器 计费 会计 制造 仓库 项目管理 库存等等 所有这些都无缝集成 Odoo根据使用案例和可用技术 可以以不同的方
  • 如何在 Debian 10 Linux 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 使用 Node js 您可以构建可扩展的网络应用程序 npm 是 Node js
  • 如何在 Debian 9 上安装 Java

    在本教程中 我们将逐步介绍在 Debian 9 上安装 Java Java 是用于构建不同类型的应用程序和系统的最流行的编程语言之一 用 Java 开发的应用程序具有可扩展性 灵活性和可维护性 有两种不同的 Java 包 Java 运行时环
  • 如何在 Debian 9 上安装和使用 PHP Composer

    Composer是 PHP 的依赖管理器 类似于Node js 的 npm or Python 的点子 Composer 将提取您的项目所依赖的所有必需的 PHP 包并为您管理它们 本教程提供了在 Debian 9 系统上安装 Compos
  • 如何列出 CentOS 上已安装的软件包

    在本教程中 我们将向您展示如何列出和过滤 CentOS 上已安装的软件包 当您需要在另一台计算机上安装相同的软件包或想要重新安装系统时 了解如何列出 CentOS 系统上已安装的软件包会很有帮助 我们还将向您展示如何检查是否安装了特定的软件
  • 如何检查您的 CentOS 版本

    当您第一次登录 CentOS 计算机时 在进行任何工作之前 您可能需要检查系统上运行的 CentOS 版本 在本教程中 我们将展示几个不同的命令 了解如何检查系统上安装的 CentOS 版本 截至撰写本文时 CentOS Linux 拥有三
  • 如何在 CentOS 8 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 在虚拟机上运行 CentOS 时 不存在交换分区 因此唯
  • 配置 Magento 2 在 CentOS 7 上使用 Varnish

    页面速度或加载时间对于在线商店的成功至关重要 加载时间是加载特定页面上的内容所需的总时间 加载时间越长 转化率越低 这也是谷歌考虑确定搜索引擎排名的最重要因素之一 在第一篇文章中 我们在 CentOS 7 机器上安装了 Magento 2
  • 自动启动 wampserver 在 Windows 10 上自动启动

    在向您展示如何自动启动 wampserver 之前 我先简单介绍一下 Wampserver 是 Windows 平台上最好的 Web 开发堆栈之一 与 xampp 相比 我更喜欢它 因为它有方便的托盘菜单 可以让我访问任何配置 您可以从此网
  • 使用 Sed 命令删除行:Linux 文本删除教程

    Using sed命令从文件或流中删除行是常见操作 使用删除行的基本语法sed如下 sed pattern to match d filename Here pattern to match是您要在文件的每一行中匹配的模式 如果一行包含指定
  • 使用 to_sql 将 Python Pandas DataFrame 导出到 SQL

    The to sql函数允许您将存储在 DataFrame 中的记录写入 SQL 数据库 通过使用 SQLAlchemy 可以使用该库支持的任何数据库 在接下来的部分中 我们将更深入地研究此功能并探索更多功能 目录 hide 1 基本语法和