使用 Pandas read_xml 将 XML 文件解析为 DataFrame

2023-10-15

The read_xml函数于Pandas用于读取 XML(可扩展标记语言)文件并将其转换为 DataFrame。

让我们深入研究实际示例来了解它是如何工作的。

 

目录 hide

 

Pandas read_xml Syntax

基本语法为pandas.read_xml is:


pandas.read_xml(
    path_or_buffer,
    xpath=None,
    namespaces=None,
    elems_only=True,
    attrs_only=False,
    names=None,
    encoding=None,
    parser="lxml",
    stylesheet=None,
    compression="infer",
    storage_options=None,
    dtype_backend=None,
    **kwargs
)
  

关键参数是:

  1. 路径或缓冲区:XML 文件、URL 或类似文件对象的路径。
  2. xpath:XPath 表达式,用于选择要解析的 XML 的特定部分。
  3. 命名空间:包含 XML 命名空间的字典,用于使用 XPath 细化选择。
  4. 仅限元素: If True,仅解析元素的文本值。如果False,元素和属性都被解析。
  5. 仅属性: If True,仅解析属性的值。如果False,元素的值被解析。
  6. names:生成的 DataFrame 的列名称列表。
  7. encoding:XML 的编码类型。默认为 UTF-8。
  8. parser:要使用的 XML 解析器(lxml or etree).
  9. 样式表:XSLT 样式表文件的路径,用于在解析之前转换 XML 数据。
  10. 压缩:压缩类型(‘infer’、‘gzip’、‘bz2’、‘zip’、‘xz’、无)。如果是“infer”,则使用文件扩展名来确定压缩类型。
  11. 存储选项:如果需要,存储连接的额外选项。
  12. dtype_后端:用于数据类型推断的后端(“python”或“lxml”)。

 

从各种来源阅读

无论您的本地磁盘上有 XML 文件、返回 XML 数据的 URL 还是类似文件的对象,read_xml可以从这些源读取 XML。

从本地 XML 文件读取

让我们从最常见的场景开始:从本地 XML 文件读取。


import pandas as pd
xml_data = """
<data>
    <row>
        <shape>square</shape>
        <degrees>360</degrees>
        <sides>4.0</sides>
    </row>
    <row>
        <shape>triangle</shape>
        <degrees>180</degrees>
        <sides>3.0</sides>
    </row>
</data>
"""

with open("shapes.xml", "w") as file:
    file.write(xml_data)
df = pd.read_xml("shapes.xml")
print(df)
  

Output:


     shape  degrees  sides
0   square      360    4.0
1  triangle    180    3.0
  

在这里,我们将一个简单的 XML 字符串写入名为的文件中shapes.xml然后使用将其读入 DataFrameread_xml.

从 URL 读取

有时您的数据在线托管。在这种情况下,read_xml可以直接从URL读取。


url = "https://example.com/data.xml"
df = pd.read_xml(url)
  

从类似文件的对象中读取

如果您有类似文件的对象(例如,来自请求或内存中的文件)。以下是如何使用阅读它们:


from io import StringIO
xml_data = """
<data>
    <row>
        <name>John</name>
        <age>28</age>
    </row>
    <row>
        <name>Jane</name>
        <age>24</age>
    </row>
</data>
"""
data_io = StringIO(xml_data)
df = pd.read_xml(data_io)
print(df)
  

Output:


   name  age
0  John   28
1  Jane   24
  

在这个例子中,我们使用模拟一个类似文件的对象StringIO然后将其中的 XML 数据读取到 DataFrame 中。

 

选择 XML 解析器

Pandas’ read_xml提供在不同 XML 解析器之间进行选择的灵活性。您选择的解析器会影响性能,因此值得了解可用的选项。

lxml 解析器

默认情况下,read_xml使用“lxml”解析器。 ‘lxml’ 非常高效并且适合大型 XML 文件。


df = pd.read_xml("shapes.xml", parser="lxml")
print(df)
  

Output:


     shape  degrees  sides
0   square      360    4.0
1  triangle    180    3.0
  

这段代码明确指定了lxml解析器,尽管即使您没有指定它,它也是默认的。

etree 解析器

另一种选择是etree来自 Python 标准库的解析器。


df = pd.read_xml("shapes.xml", parser="etree")
print(df)
  

Output:


     shape  degrees  sides
0   square      360    4.0
1  triangle    180    3.0
  

基准解析器

为了演示目的,我将首先生成一个大型 XML 文件。然后,我将进行基准测试read_xml()使用两个解析器的函数。

我们将生成一个包含 100 万个条目的大型 XML 文件来比较性能。


import pandas as pd
import random
import time

# Step 1: Generate a large XML file
num_entries = 1000000
shapes = ["triangle", "square", "pentagon", "hexagon"]

xml_data = ''
for _ in range(num_entries):
    shape = random.choice(shapes)
    xml_data += f'{shape}{random.randint(100, 400)}{random.randint(3, 6)}'
xml_data += ''

with open("large_sample.xml", "w") as f:
    f.write(xml_data)

file_path ="large_sample.xml"

# Benchmark for lxml parser
start_time_lxml = time.time()
df_lxml = pd.read_xml(file_path, parser="lxml")
end_time_lxml = time.time()
lxml_duration = end_time_lxml - start_time_lxml

# Benchmark for etree parser
start_time_etree = time.time()
df_etree = pd.read_xml(file_path, parser="etree")
end_time_etree = time.time()
etree_duration = end_time_etree - start_time_etree

print(lxml_duration)
print(etree_duration)
  

Output:


44.94610905647278
18.623760223388672  

The etree解析器要快得多。

 

指定列名称

考虑一个名为persons.xml包含以下内容:


<data>
    <row>
        <nm>John</nm>
        <ag>28</ag>
    </row>
    <row>
        <nm>Jane</nm>
        <ag>24</ag>
    </row>
</data>
  

请注意,列标签是缩写的(nm对于名字和ag对于年龄)。如果您想在将 XML 读入 DataFrame 时将这些列重命名为更具描述性的名称,您可以使用names范围。


df = pd.read_xml("persons.xml", names=["name", "age"])
print(df)
  

Output:


   name  age
0  John   28
1  Jane   24
  

 

处理压缩的 XML 文件

Pandas’ read_xml具有直接读取压缩XML文件的能力,无需手动解压。

读取 GZIP 压缩 XML

假设您有一个使用 GZIP 压缩的 XML 文件,文件名为data.xml.gz.

要将其读入 DataFrame:


df = pd.read_xml("data.xml.gz", compression='gzip')
print(df)
  

读取 BZIP2 压缩 XML

如果您的 XML 文件是使用 BZIP2 压缩的,例如,data.xml.bz2:


df = pd.read_xml("data.xml.bz2", compression='bz2')
print(df)
  

读取 ZIP 压缩的 XML

对于 ZIP 存档中的 XML 文件,例如data.xml.zip:


df = pd.read_xml("data.xml.zip", compression='zip')
print(df)
  

自动检测压缩

在许多情况下,您甚至不必指定压缩类型。read_xml足够智能,可以自动检测文件扩展名的压缩,例如.gz, .bz2, and .zip.


df = pd.read_xml("data.xml.gz")
print(df)
  

即使没有compression参数,因为.gz文件扩展名。

 

高级存储连接选项

The storage_options参数输入read_xml允许您传递连接到云存储等存储系统所需的额外选项。

通过身份验证从 S3 存储桶中读取数据

假设您的 XML 数据存储在 S3 存储桶上,并且访问此数据需要特定的凭据。使用方法如下storage_options:


s3_path = "s3://your_bucket_name/path_to_file.xml"
df = pd.read_xml(s3_path, 
                 storage_options={"key": "your_access_key", 
                                  "secret": "your_secret_key"})
print(df)
  

与其他存储系统一起使用

storage_options不限于S3。您可以使用它来传递各种存储系统所需的连接参数,例如 GCS(Google 云存储)、Azure Blob 存储等。

例如,连接到 GCS 将如下所示:


gcs_path = "gcs://your_bucket_name/path_to_file.xml"
df = pd.read_xml(gcs_path, 
                 storage_options={"token": "your_gcs_token"})
print(df)
  

 

使用 XPath 表达式选择数据

XPath 是一种功能强大的查询语言,允许您处理需要提取特定部分或属性的复杂 XML 结构。

The xpath参数输入read_xml函数允许您使用 XPath 表达式。

基本 XPath 选择

考虑一个 XML 文件products.xml具有以下结构:


<products>
    <product category="electronics">
        <name>Smartphone</name>
        <price>500</price>
    </product>
    <product category="books">
        <name>Python Guide</name>
        <price>30</price>
    </product>
</products>
  

仅选择“电子产品”类别中的产品:


df = pd.read_xml("products.xml", xpath="//product[@category='electronics']")
print(df)
  

Output:


      category        name  price
0  electronics  Smartphone    500
  

提取特定元素

您可以进一步细化您的选择。仅提取“电子”类别中的产品名称:


df = pd.read_xml("data.xml", xpath="//product[@category='electronics']")
df_name = df['name']
print(df_name)  

Output:


0    Smartphone
Name: name, dtype: object
  

在 XPath 中使用函数

XPath 提供了各种函数来使您的选择更加动态。例如,选择价格高于 100 的产品:


df = pd.read_xml("products.xml", xpath="//product[number(price)>100]")
print(df)
  

Output:


      category        name  price
0  electronics  Smartphone    500
  

 

使用 XML 命名空间

XML 命名空间用于区分具有相同名称但在不同 XML 词汇表中定义的元素。

它们对于避免 XML 文档中的命名冲突至关重要。

考虑以下 XML,另存为data.xml,它使用命名空间:


<root xmlns:product="http://www.example.com/product" xmlns:price="http://www.example.com/price">
    <product:item>
        <product:name>Laptop</product:name>
        <price:value>1000</price:value>
    </product:item>
    <product:item>
        <product:name>Mouse</product:name>
        <price:value>20</price:value>
    </product:item>
</root>
  

注意xmlns:product and xmlns:price分别定义产品和价格的 XML 命名空间的属性。

使用 Pandas 中的命名空间解析 XML

为了使用命名空间解析 XML,我们需要将这些命名空间提供给read_xml功能。


namespaces = {
    "product": "http://www.example.com/product",
    "price": "http://www.example.com/price"
}
df = pd.read_xml("data.xml", xpath="//product:item", namespaces=namespaces)
print(df)
  

Output:


     name  value
0  Laptop   1000
1   Mouse     20
  

在代码中,我们提供了一个命名空间字典并使用namespaces范围。

这确保了 Pandas 可以正确解释 XML 命名空间并提取相关数据。

带有命名空间的 XPath

查询命名空间内的元素时,您将使用您定义的前缀:


namespaces = {
    'product': 'http://www.example.com/product',
    'price': 'http://www.example.com/price'
}
df = pd.read_xml("data.xml", xpath="//product:item", namespaces=namespaces)
product_names = df["name"]
print(product_names)
  

Output:


0    Laptop
1     Mouse
Name: name, dtype: object
  

此代码专门使用以下方式提取产品名称product命名空间前缀。

 

只读元素值

The read_xml函数提供了elems_only参数仅读取元素值,不包括任何属性。

考虑这个 XML,另存为products.xml:


<products>
    <item type="electronics">
        <name>Laptop</name>
        <price>1000</price>
    </item>
    <item type="accessory">
        <name>Mouse</name>
        <price>20</price>
    </item>
</products>
  

Each item元素有一个type属性以及产品名称和价格的子元素。

解析 XML 忽略属性

仅读取元素值并忽略属性,例如type,你设置elems_only=True:


df = pd.read_xml("products.xml", elems_only=True)
print(df)
  

Output:


     name  price
0  Laptop   1000
1   Mouse     20
  

为了进行比较,以下是当您不指定时会发生的情况elems_only:


df_default = pd.read_xml("products.xml")
print(df_default)
  

Output:


          type    name  price
0  electronics  Laptop   1000
1    accessory   Mouse     20
  

在默认行为中,两个属性type和元素值name and price包含在生成的 DataFrame 中。

 

只读属性值

The attrs_only参数输入read_xml函数允许您仅从 XML 中提取属性值。

回想一下我们的products.xml:


<products>
    <item type="electronics">
        <name>Laptop</name>
        <price>1000</price>
    </item>
    <item type="accessory">
        <name>Mouse</name>
        <price>20</price>
    </item>
</products>
  

在这里,我们有type每个内的属性item元素,以及产品名称和价格的子元素。

重点解析 XML 属性

要只读属性并忽略元素值,您可以设置attrs_only=True:


df = pd.read_xml("products.xml", attrs_only=True)
print(df)
  

Output:


          type
0  electronics
1    accessory
  

如果您不指定,这就是您将得到的结果attrs_only:


df_default = pd.read_xml("products.xml")
print(df_default)
  

Output:


          type    name  price
0  electronics  Laptop   1000
1    accessory   Mouse     20
  

默认情况下,两个type属性和元素值name and price被提取。

 

指定列数据类型

The dtype参数输入read_xml函数允许您控制结果列的数据类型。

默认情况下,read_xml尝试推断适当的类型:


df_default = pd.read_xml("products.xml")
print(df_default.dtypes)
  

Output:


type    object
name    object
price    int64
dtype: object
  

The price列被正确推断为整数(int64).

手动设置数据类型

如果要显式指定列数据类型,可以使用dtype范围:


df = pd.read_xml("products.xml", dtype={"price": "float64", "name": "string"})
print(df.dtypes)
  

Output:


type             object
name     string[python]
price           float64
dtype: object
  

在这里,我们设置了price列为浮点型 (float64)和name列作为字符串类型(string).

 

特定列的自定义转换函数

随着converters参数输入read_xml,您可以定义自定义函数来在解析过程中转换特定列。

让我们考虑一个名为sales.xml包含以下内容:


<sales>
    <transaction>
        <product>Laptop</product>
        <amount>$1000.00</amount>
        <date>10th Sep 2023</date>
    </transaction>
    <transaction>
        <product>Mouse</product>
        <amount>$20.00</amount>
        <date>11th Sep 2023</date>
    </transaction>
</sales>
  

The amount值有美元符号,并且date值具有序数指示符,这使得它们对于自动类型推断来说是非标准的。

定义自定义转换函数

出于我们的目的,我们将创建两个函数:

  • convert_currency:删除美元符号并转换为浮点数。
  • convert_date:解析非标准日期格式。

import pandas as pd
from datetime import datetime

def convert_currency(value):
    return float(value.replace('$', ''))

def convert_date(value):
    return datetime.strptime(value, "%dth %b %Y")

  

Using converters in read_xml

现在,使用以下命令应用这些自定义函数converters范围:


df = pd.read_xml(
    "sales.xml", 
    converters={
        "amount": convert_currency, 
        "date": convert_date
    }
)
print(df)
  

Output:


   product  amount       date
0   Laptop  1000.0 2023-09-10
1    Mouse    20.0 2023-09-11
  

The amount列现在是 float 类型,并且date列是一个日期时间对象,准备进一步分析。

 

将特定列解析为日期

虽然您可以使用前面所示的自定义转换器,但对于标准日期格式,parse_dates参数输入read_xml提供了更直接的机制。

考虑一个名为events.xml:


<events>
    <event>
        <name>Conference A</name>
        <date>2023-09-10</date>
    </event>
    <event>
        <name>Workshop B</name>
        <date>2023-09-12</date>
    </event>
</events>
  

The date值在YYYY-MM-DD格式,这是标准的。

使用解析日期parse_dates

为确保date列被解析为日期时间对象,使用parse_dates范围:


df = pd.read_xml("events.xml", parse_dates=['date'])
print(df.dtypes)
  

Output:


name            object
date    datetime64[ns]
dtype: object
  

处理多个日期列

如果您的 XML 包含多个日期列,您可以通过提供列表轻松解析所有这些列:


df = pd.read_xml("events.xml", parse_dates=['date', 'another_date_column'])
  

 

推断和强制执行数据类型

虽然 Pandas 可以推断数据类型,但有时您需要更多的控制或特异性。

The dtype_backend中的参数read_xml函数通过提供后端特定的数据类型推断来提供此级别的详细信息。

默认情况下,Pandas 使用其数据类型推断机制。让我们将 XML 数据保存到名为sample.xml:


<data>
    <entry>
        <value>1</value>
    </entry>
    <entry>
        <value>1.5</value>
    </entry>
</data>
  

阅读该文件,您可能会观察到:


import pandas as pd
df = pd.read_xml("sample.xml")
print(df.dtypes)
  

Output:


value    float64
dtype: object
  

熊猫推断出value列作为float64。如果这不是所需的类型怎么办?

使用dtype_backend范围

The dtype_backend参数允许您选择一个后端("numpy_nullable" or "pyarrow") 对于数据类型推断:


df_python = pd.read_xml("data.xml", dtype_backend="numpy_nullable")
df_lxml = pd.read_xml("data.xml", dtype_backend="pyarrow")

print("NumPy Nullable Backend:", df_python.dtypes)
print("pyarrow Backend:", df_lxml.dtypes)
  

Output:


NumPy Nullable Backend: value    Float64
dtype: object
pyarrow Backend: value    double[pyarrow]
dtype: object
  

随着pyarrow后端,value列被推断为double[pyarrow],这在某些场景下更相关。

 

使用 XSLT 样式表转换 XML

可扩展样式表语言转换 (XSLT) 是用于转换 XML 文档的强大工具。

The stylesheet中的参数read_xml函数允许您通过应用 XSLT 样式表来实现此目的。

假设您有一个 XML 文件,employees.xml:


<employees>
    <employee>
        <name>John</name>
        <role>Developer</role>
    </employee>
    <employee>
        <name>Mary</name>
        <role>Designer</role>
    </employee>
</employees>
  

创建 XSLT 样式表

如果您想转换 XML 以仅保留员工姓名。此转换的 XSLT 可能如下所示:


<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="role"/>
</xsl:stylesheet>  

将此样式表另存为transform.xslt.

使用以下方法应用 XSLT 样式表stylesheet

要在读取 XML 数据时使用转换:


df = pd.read_xml("employees.xml", stylesheet="transform.xslt")
print(df)
  

Output:


   name
0  John
1  Mary
  

如图所示,只有员工姓名保留在生成的 DataFrame 中。

 

流解析:加载大型 XML 文件

处理大型 XML 文件可能会占用大量资源,尤其是在将整个文档加载到内存中时。

流解析会在遇到 XML 元素时对其进行处理,而不会将整个文件加载到内存中。

Pandas 通过以下方式提供此功能iterparse中的参数read_xml功能。

Using iterparse

假设您有一个名为bigdata.xml:


<data>
    <polygon>
        <shape>square</shape>
        <degrees>360</degrees>
        <sides>4.0</sides>
    </polygon>
    <polygon>
        <shape>circle</shape>
        <degrees>360</degrees>
    </polygon>
    <polygon>
        <shape>triangle</shape>
        <degrees>180</degrees>
        <sides>3.0</sides>
    </polygon>
</data>
  

不要一次读取整个文件,而是使用iterparse逐步处理它:


df = pd.read_xml('sample.xml', iterparse={"polygon": ["shape", "degrees", "sides"]})
print(df.head())
  

Output:


      shape  degrees  sides
0    square      360    4.0
1    circle      360    NaN
2  triangle      180    3.0
  

The interparse参数用于指定 XML 的结构以及如何解析它。

基准解析

比较使用之间的性能iterparse并且不使用它来读取大型 XML 文件。计划如下:

  1. 生成一个大的 XML 文件。
  2. 测量在不使用的情况下读取 XML 文件所花费的时间iterparse.
  3. 使用以下命令测量读取 XML 文件所需的时间iterparse.

import pandas as pd
import random
import time
from io import BytesIO

# Step 1: Generate a large XML file
num_entries = 1000000
shapes = ["triangle", "square", "pentagon", "hexagon"]

xml_data = ''
for _ in range(num_entries):
    shape = random.choice(shapes)
    xml_data += f'{shape}{random.randint(100, 400)}{random.randint(3, 6)}'
xml_data += ''

with open("large_sample.xml", "w") as f:
    f.write(xml_data)

# Step 2: Measure time without iterparse
start_time = time.time()
df1 = pd.read_xml('large_sample.xml')
end_time = time.time()
without_iterparse_time = end_time - start_time
print(f"Time without iterparse: {without_iterparse_time:.4f} seconds")

# Step 3: Measure time with iterparse
start_time = time.time()
df2 = pd.read_xml('large_sample.xml', iterparse={"polygon": ["shape", "degrees", "sides"]})
end_time = time.time()
with_iterparse_time = end_time - start_time
print(f"Time with iterparse: {with_iterparse_time:.4f} seconds")
  

Output:


Time without iterparse: 42.4067 seconds
Time with iterparse: 35.7642 seconds  

如你看到的,interparse更快地解析大型 XML 文件,时间差仅为 100 万个 XML 条目。

 

Resource

https://pandas.pydata.org/docs/reference/api/pandas.read_xml.html

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

使用 Pandas read_xml 将 XML 文件解析为 DataFrame 的相关文章

随机推荐

  • 理解 Python print() 函数:超越 Hello World

    您可能想知道 为什么要写一个关于简单打印功能的完整教程 但不要被欺骗 谦卑者print 函数虽然使用简单 但却是 Python 工具库中不可或缺的工具 本教程将引导您了解使用print 函数 探索其语法和参数 然后深入研究更高级的主题 您将
  • 在 Python 中删除字符串中标点符号的 5 种方法

    Python 提供了多种删除标点符号的方法 这里的目标是将字符串中的每个标点字符替换为空字符串 让我们为所有示例考虑以下原始字符串 original string Hello World Let s test some punctuatio
  • PyQt5 教程 – Python GUI 编程示例

    PyQt5 是用 Python 构建 GUI 应用程序时最常用的模块之一 这是因为它的简单性 正如您将看到的那样 鼓励开发人员使用 PyQt5 的另一个重要功能是 PyQt5 设计器 它使得在短时间内开发复杂的 GUI 应用程序变得非常容易
  • Python GUI 示例(Tkinter 教程)

    在本教程中 我们将通过使用 Tkinter 包编写一些 Python GUI 示例来学习如何开发图形用户界面 Tkinter 包作为标准包随 Python 一起提供 因此我们不需要安装任何东西即可使用它 Tkinter 包是一个非常强大的包
  • Python 中的凯撒密码(文本加密教程)

    密码学涉及将一条信息 以纯文本形式 加密或编码为一种看起来乱码且在普通语言中毫无意义的形式 此编码消息 也称为密文然后 目标接收者可以使用传达给最终用户的解码技术 通常与私钥一起 将其解码回纯文本 凯撒密码是我们将在本教程中重点介绍的最古老
  • 安装和使用非 Composer Laravel 包

    如果你想在 Laravel 中使用包 你只需在 Composer json 文件中添加一行即可完成工作 这是因为该包在 packagist org 中可用 如果您要使用的包是非 Composer Laravel 包怎么办 可能在 git 存
  • 文本处理中 Awk 命令的 30 个示例

    在上一篇文章中 我们谈到了sed命令我们看到了许多在文本处理中使用它的例子 我们看到了它在这方面的优点 但它有一些局限性 有时您需要一些强大的功能 让您能够更好地控制数据处理 这是哪里awk 命令进来 awk 命令或具体的 GNU awk
  • 安装、保护、访问和配置 Linux 邮件服务器 (Postfix)

    如果您想发送或接收电子邮件 您应该有一个邮件服务器 在这篇文章中 我们将讨论 Linux 邮件服务器以及 SMTP 简单邮件传输协议 以及其他邮件相关协议 例如邮局协议 POP 和互联网消息访问协议 IMAP 的工作原理以及它们之间的关系他
  • 了解和使用 Linux Subshel​​l(实用指南)

    子shell是由shell启动的子进程 shell本质上是一个命令行解释器 它共享父 shell 的属性 但在单独的进程空间中运行 子 shell 为执行命令和运行脚本提供了隔离性和灵活性 子 shell 通常用于任务自动化 并行执行和模块
  • 加速您的 Python 代码:Numba 实用指南

    Numba 是一个开源 JIT 编译器 可以翻译以下代码的子集Python and NumPy代码转换为快速机器代码 它通过使用行业标准的 LLVM 编译器库并优化执行速度来加速数值计算 在本教程中 我们将探索如何使用 Numba 使 Py
  • Linux 正则表达式教程(Sed 和 AWK)示例

    为了成功地与Linux sed编辑和awk 命令在 shell 脚本中 您必须了解正则表达式或简称正则表达式 由于正则表达式有很多引擎 我们将使用 shell 正则表达式并了解 bash 在使用正则表达式方面的强大功能 首先 我们需要了解什
  • 10 多个在 Linux 中终止进程的示例

    在本教程中 我们将通过多个示例讨论如何终止 Linux 中的进程 在大多数情况下 就像输入 kill 命令然后输入进程 ID 通常缩写为 PID 一样简单 正如你所看到的 我们杀死了一个ID为1813的进程 如果您是 Windows 用户
  • 如何安装和配置 Squid Linux 代理服务器

    Linux代理服务器或代理服务器通常是保存访问过的网页以供以后请求的服务器 因此如果您尝试访问同一个网页或其他任何人 您将从代理服务器获取页面 这非常有用 它使网上冲浪速度更快并减少流量 这意味着成本更低 缓存服务器可以将外部流量减少至 4
  • 使用 Sed 命令进行文本替换的实际示例

    在本教程中 您将深入研究如何使用实际示例sed命令可用于文本替换 在本教程结束时 您将对以下方面有更深入的了解sed及其在文本替换中的实际应用 目录 hide 1 将 URL 中的 HTTP 更改为 HTTPS 2 用下划线替换空格 3 更
  • 数据帧过滤:在 Pandas 查询中使用正则表达式

    The 查询 方法Pandas 中允许您根据查询表达式过滤 DataFrame 行 将正则表达式 regex 的强大功能与query 方法允许更高级和灵活的查询 本教程将指导您完成使用正则表达式的过程query 熊猫中的方法 目录 hide
  • 使用 to_xml 将 Pandas DataFrame 转换为 XML 文件

    The to xml方法允许您将 DataFrame 转换为 XML 格式 在本教程中 我们将逐步完成导出Pandas使用 DataFrame 到 XML 文件to xml method 目录 hide 1 Pandas to xml 语法
  • 使用 to_csv 将 Python Pandas DataFrame 导出到 CSV 文件

    The to csv函数允许您从a写入数据PandasDataFrame 到 CSV 文件 当您需要保存 共享或导出数据以便在不同的环境或应用程序中进一步使用或分析时 这非常有用 它带有多个参数 可帮助您根据需要自定义流程 例如 您可以选择
  • 使用 Linux-PAM 增强 Linux 身份验证

    在上一篇文章中 我们讨论了Linux iptables 防火墙 还有人问认证问题 今天我们来聊聊Linux中用于身份验证的强大框架 那就是Linux PAM PAM or 可插拔的身份验证模块是位于 Linux 应用程序和 Linux 本机
  • Linux gzip 命令:综合教程

    gzip 代表 GNU zip 是基于 Unix 的系统上用于压缩和解压缩文件的流行工具 该工具不仅仅压缩单个文件 与其他工具 例如tar用于压缩目录 目录 hide 1 命令结构和选项 2 压缩和解压文件 3 了解 gzip 中使用的压缩
  • 使用 Pandas read_xml 将 XML 文件解析为 DataFrame

    The read xml函数于Pandas用于读取 XML 可扩展标记语言 文件并将其转换为 DataFrame 让我们深入研究实际示例来了解它是如何工作的 目录 hide 1 Pandas read xml 语法 2 Read from