📜  在 pandas 中拆分列值 - Python (1)

📅  最后修改于: 2023-12-03 14:51:03.771000             🧑  作者: Mango

在 pandas 中拆分列值 - Python

当处理表格数据时,经常会遇到需要拆分列值的情况。Pandas 是一个强大的数据分析工具,它提供了多种方法来拆分列值,使数据处理变得更加灵活和高效。

方法 1: 使用 split() 函数拆分列值

可以使用 Pandas 的 split() 函数来拆分列值。该函数基于指定的分隔符将列值拆分成多个部分,并返回一个包含拆分后值的新列。

下面是一个示例代码,演示了如何使用 split() 函数拆分列值:

import pandas as pd

# 创建一个包含姓名和电话号码的DataFrame
data = {'Name': ['John Doe', 'Jane Smith', 'Adam Johnson'],
        'Phone': ['123-456-7890', '555-555-5555', '987-654-3210']}
df = pd.DataFrame(data)

# 使用 split() 函数拆分 Phone 列的值
df[['Phone_prefix', 'Phone_number', 'Phone_postfix']] = df['Phone'].str.split('-', expand=True)

# 打印拆分后的 DataFrame
print(df.to_markdown())

上述代码中,我们创建了一个包含姓名和电话号码的 DataFrame,并使用 split() 函数将电话号码列拆分为区号、电话号码以及分机号码。expand=True 参数将结果展开为多个列。

拆分后的 DataFrame 如下所示:

| | Name | Phone | Phone_prefix | Phone_number | Phone_postfix | |---:|:--------------|:----------------|:---------------|:---------------|:----------------| | 0 | John Doe | 123-456-7890 | 123 | 456 | 7890 | | 1 | Jane Smith | 555-555-5555 | 555 | 555 | 5555 | | 2 | Adam Johnson | 987-654-3210 | 987 | 654 | 3210 |

方法 2: 使用正则表达式拆分列值

除了使用 split() 函数,还可以使用正则表达式来拆分列值。Pandas 的 str.extract() 函数可以基于指定的正则表达式模式从字符串中提取匹配的部分。

下面是一个示例代码,演示了如何使用正则表达式拆分列值:

import pandas as pd

# 创建一个包含姓名和地址的DataFrame
data = {'Name': ['John Doe', 'Jane Smith', 'Adam Johnson'],
        'Address': ['123 Main St', '456 Elm St', '789 Oak Ave']}
df = pd.DataFrame(data)

# 使用正则表达式拆分 Address 列的值
df[['Street_number', 'Street_name']] = df['Address'].str.extract(r'(\d+)\s(.*)')

# 打印拆分后的 DataFrame
print(df.to_markdown())

上述代码中,我们创建了一个包含姓名和地址的 DataFrame,并使用正则表达式拆分地址列为街道号码和街道名称。

拆分后的 DataFrame 如下所示:

| | Name | Address | Street_number | Street_name | |---:|:--------------|:--------------|:----------------|:--------------| | 0 | John Doe | 123 Main St | 123 | Main St | | 1 | Jane Smith | 456 Elm St | 456 | Elm St | | 2 | Adam Johnson | 789 Oak Ave | 789 | Oak Ave |

总结

在 Pandas 中拆分列值是一项常见的数据处理任务。本文介绍了两种常用的方法:使用 split() 函数和使用正则表达式。这些方法可以根据需要将列值拆分成多个部分,并以新的列形式添加到 DataFrame 中。

通过灵活使用这些方法,您可以更好地处理和分析表格数据。