我从一个PDF数据表中提取了一个粗略的df,该数据表由一个包含字符串的列组成。该栏中的每一项均采用以下形式:
Mayor ............... Paul Jones
Senator ................. Billy Twister
Congress Rep. .......... Chris Rock
Chief of Staff ....... Tony Allen我希望使用string.split(pat=".")将这些字符串拆分为两列,用于使用句点字符串的Title和Name。但是,列中的每个条目对于句点字符串分隔符都有不同的长度。正如预期的那样,例如,如果我使用pat="."或pat=".......",最终会出现不一致的拆分。
我的目标是实现一种使分隔符能够处理给定最小和最大长度的句点字符串长度范围的方法。我在谷歌上搜索过这个问题,但一直没有找到一个直接的答案。这有可能实现吗?
发布于 2021-11-27 17:19:43
将Series.str.split与regex \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 Allenhttps://stackoverflow.com/questions/70137015
复制相似问题