如何使用 'variable' 分隔符将字符串列拆分为两列?
How to split a string column into two columns with a 'variable' delimiter?
我有一个从 PDF 数据 table 中提取的粗略 df,它由包含字符串的单个列组成。列中的每个条目都采用以下形式:
Mayor ............... Paul Jones
Senator ................. Billy Twister
Congress Rep. .......... Chris Rock
Chief of Staff ....... Tony Allen
我想使用 string.split(pat=".")
将这些字符串分成两列,用于 Title
和 Name
使用句点字符串。但是,列中的每个条目的句点字符串定界符的长度不同。正如预期的那样,例如,如果我使用 pat="."
或 pat="......."
,我最终会得到不一致的拆分。
我的目标是实现一种方法,使分隔符能够处理给定最小和最大长度的一系列句点字符串长度。我用谷歌搜索了这个问题,但没能找到直接的答案。这可以实现吗?
将 Series.str.split
与正则表达式 \s+\.+\s+
一起使用,它按 1+ 个空格、1+ 个句点、1+ 个空格分隔:
df = pd.DataFrame({'A': ['Mayor ............... Paul Jones', 'Senator ................. Billy Twister', 'Congress Rep. .......... Chris Rock', 'Chief of Staff ....... Tony Allen']})
df[['Title', 'Name']] = df['A'].str.split('\s+\.+\s+', expand=True)
# A Title Name
# 0 Mayor ............... Paul Jones Mayor Paul Jones
# 1 Senator ................. Billy Twister Senator Billy Twister
# 2 Congress Rep. .......... Chris Rock Congress Rep. Chris Rock
# 3 Chief of Staff ....... Tony Allen Chief of Staff Tony Allen
我有一个从 PDF 数据 table 中提取的粗略 df,它由包含字符串的单个列组成。列中的每个条目都采用以下形式:
Mayor ............... Paul Jones
Senator ................. Billy Twister
Congress Rep. .......... Chris Rock
Chief of Staff ....... Tony Allen
我想使用 string.split(pat=".")
将这些字符串分成两列,用于 Title
和 Name
使用句点字符串。但是,列中的每个条目的句点字符串定界符的长度不同。正如预期的那样,例如,如果我使用 pat="."
或 pat="......."
,我最终会得到不一致的拆分。
我的目标是实现一种方法,使分隔符能够处理给定最小和最大长度的一系列句点字符串长度。我用谷歌搜索了这个问题,但没能找到直接的答案。这可以实现吗?
将 Series.str.split
与正则表达式 \s+\.+\s+
一起使用,它按 1+ 个空格、1+ 个句点、1+ 个空格分隔:
df = pd.DataFrame({'A': ['Mayor ............... Paul Jones', 'Senator ................. Billy Twister', 'Congress Rep. .......... Chris Rock', 'Chief of Staff ....... Tony Allen']})
df[['Title', 'Name']] = df['A'].str.split('\s+\.+\s+', expand=True)
# A Title Name
# 0 Mayor ............... Paul Jones Mayor Paul Jones
# 1 Senator ................. Billy Twister Senator Billy Twister
# 2 Congress Rep. .......... Chris Rock Congress Rep. Chris Rock
# 3 Chief of Staff ....... Tony Allen Chief of Staff Tony Allen