gpt4 book ai didi

python - Pandas 函数将多行文本列拆分为多列

转载 作者:行者123 更新时间:2023-12-05 01:22:45 31 4
gpt4 key购买 nike

我有一个格式如下的列 (stud_info)

stud_info = """Name: Mark
Address:
PHX, AZ
Hobbies:
1. Football
2. Programming
3. Squash"""

source data

原始数据中的列 (stud_info) 是 stud_info,其中包含多行文本数据。我需要将它分成 3 列(姓名、地址和爱好)。对于简单的拆分,我们可以通过 lambda 函数来完成,但这是多行拆分,列名也是数据的一部分。 (即文本名称、地址和爱好不应成为列的一部分)。最后一列应该看起来像

final data

请建议一种使用 Pandas 的方法。

最佳答案

给定:

df = pd.DataFrame({'stud_info': {0: 'Name: Mark\nAddress: \nPHX, AZ\nHobbies: \n1. Football\n2. Programming\n3. Squash'}})

我们可以为您的特定格式定义正则表达式,并使用 pd.Series.str.extract 方法将组分成不同的列。有关模式的解释,请参阅 Regexr .

import re

pattern = 'Name:\s(.+)\nAddress:\s\n(.+)\nHobbies:\s\n(.+)'
# We need flags=re.DOTALL to allow the final group to encompass multiple lines.
df[['Name', 'Address', 'Hobbies']] = df.stud_info.str.extract(pattern, flags=re.DOTALL)
print(df[['Name', 'Address', 'Hobbies']])

输出:

   Name  Address                                 Hobbies
0 Mark PHX, AZ 1. Football\n2. Programming\n3. Squash

关于python - Pandas 函数将多行文本列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73573206/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com