拆分字符串并存储到DataFrame:从字符数组提取姓名、标识与日期
解决方案:拆分字符数组并生成结构化DataFrame
嘿,这有个精准的Python方案,能完美拆分你的字符数组并生成你想要的结构化DataFrame:
import pandas as pd import re # 定义你的字符数组 reviewer_strings = [ "ByShubham SharmaTOP 500 REVIEWERon 12 November 2017", "ByJitender Bhatiaon 16 November 2017", "ByMridul K.on 15 August 2017" ] # 正则模式:匹配姓名、可选徽章、日期三个部分 pattern = r'^By([A-Za-z\s.]+?)(TOP \d+ REVIEWER)?on (.+)$' # 初始化存储结构化数据的列表 structured_data = [] for s in reviewer_strings: # 匹配每个字符串 match_result = re.match(pattern, s) if match_result: # 提取并清洗姓名 name = match_result.group(1).strip() # 提取徽章,没有则设为NA badge = match_result.group(2).strip() if match_result.group(2) else "NA" # 提取并清洗日期 date = match_result.group(3).strip() # 添加到列表 structured_data.append({ "Name": name, "Badge": badge, "Date": date }) # 转换为DataFrame result_df = pd.DataFrame(structured_data) print(result_df)
代码运行输出:
Name Badge Date 0 Shubham Sharma TOP 500 REVIEWER 12 November 2017 1 Jitender Bhatia NA 16 November 2017 2 Mridul K. NA 15 August 2017
关键细节说明:
- 正则表达式用非贪婪匹配(
+?)来精准捕获姓名部分,避免把徽章内容误包含进去 - 徽章分组用
?标记为可选,没有匹配到的条目自动填充为"NA" - 所有提取的字段都用
strip()去除可能的多余空格,保证数据整洁
内容的提问来源于stack exchange,提问作者Sana Ansari
相关产品推荐
相关产品推荐

