如何从TdmsGroup结构字符串中提取组名并存入DataFrame?
提取TdmsGroup组名并存入DataFrame的解决方案
要完成这个需求,咱们可以用正则表达式精准定位并提取引号内的组名,再借助pandas将结果转换为DataFrame,操作起来很直观:
步骤分解
- 导入依赖库:需要用到
re(正则处理)和pandas(DataFrame操作) - 编写正则规则:匹配所有被单引号包裹的内容,捕获引号内的组名
- 提取组名列表:用正则查找所有符合规则的内容
- 转换为DataFrame:将列表转为带列名的DataFrame
完整代码示例
import re import pandas as pd # 假设这是你的程序返回的字符串(直接打印TdmsGroup列表得到的结果) tdms_groups_str = "[<TdmsGroup with path /'Current 1'>, <TdmsGroup with path /'Break Torque'>, <TdmsGroup with path /'Pressure'>]" # 定义正则表达式:匹配单引号,并捕获引号内的所有非单引号字符 pattern = r"'([^']+)'" # 提取所有匹配的组名 extracted_groups = re.findall(pattern, tdms_groups_str) # 将列表转换为DataFrame,指定列名为"Group Name" group_df = pd.DataFrame(extracted_groups, columns=["Group Name"]) # 查看结果 print(group_df)
代码解释
- 正则表达式
r"'([^']+)'":'匹配单引号,([^']+)是捕获组,匹配任意非单引号的字符(直到遇到下一个单引号),这样就能精准提取每个组名。 re.findall()会返回所有匹配到的捕获组内容,也就是我们需要的组名字列表。- 最后用
pd.DataFrame()将列表转为DataFrame,指定列名让结果更清晰。
运行结果
执行代码后,你会得到如下DataFrame:
Group Name 0 Current 1 1 Break Torque 2 Pressure
不管你的字符串里有多少个组名,这个方法都能一次性提取所有符合要求的内容哦~
内容的提问来源于stack exchange,提问作者PEachL
相关产品推荐
相关产品推荐

