python - 无法从字符串中获取子字符串。需要帮助
问题描述
我有一个包含字符串的列
'ID=1,Name=GDNDL380F4,Type=FTT-87, Value=GDNDL380F4,Registration Info: Sn = GDNDL380F4, Service Level=Service Level Disabled'
|Column
|'ID=1,Name=GDNDL380F4,Type=FTT-87, Value=GDNDL380F4,Registration Info: Sn = GDNDL380F4, Service Level=Service Level Disabled'|
|'ID=1,Name=GDNDL4040F4,Type=FTT-87, Value=GDNDL4040F4,Registration Info: Sn = GDNDL380F4, Service Level=Service Level Disabled'|
|'ID=1,Name=GDNDL380F5,Type=FTT-87, Value=GDNDL380F5,Registration Info: Sn = GDNDL380F4, Service Level=Service Level Disabled'|
预期输出:
Name | Type |
GDNDL380F4 |FTT-87 |
GDNDL4040F4|FTT-87 |
GDNDL380F5 |FTT-87 |
我需要的是在 Name= 到列 Name 之后获取子字符串(GDNDL380F4),在 Type= 到列 Type 之后获取子字符串(FTT-87)。
我用 str.extract、find 和 re.find 尝试了不同的方法,但由于某种原因,我得到了错误的结果(nan 或空数组)。所以需要帮助。
解决方案
从字符串中制作字典并按键获取项目
s = 'ID=1,Name=GDNDL380F4,Type=FTT-87, Value=GDNDL380F4,Registration Info: Sn = GDNDL380F4, Service Level=Service Level Disabled'
d = dict(item.split("=") for item in s.split(","))
print(d['Name']) # GDNDL380F4
print(d['Type']) # FTT-87
熊猫解决方案:
df1=pd.DataFrame([dict(y.split("=") for y in x.strip("' ").split(",")) for x in df['Column']],
index=df.index)
print (df1)
ID Name Type Value Registration Info: Sn \
0 1 GDNDL380F4 FTT-87 GDNDL380F4 GDNDL380F4
1 1 GDNDL4040F4 FTT-87 GDNDL4040F4 GDNDL380F4
2 1 GDNDL380F5 FTT-87 GDNDL380F5 GDNDL380F4
Service Level
0 Service Level Disabled
1 Service Level Disabled
2 Service Level Disabled
推荐阅读
- python - Pytorch - 查看/展平 (4, 10, 3, 368, 368) 到 (40, 3, 368, 368)
- python - 如何让我的代码只打印给定整数中的偶数
- php - phpmyadmin sql代码的问题,在2个单词表和wordslearned之间进行选择
- unix - 从 shm_open() fd 中删除 FD_CLOEXEC 是否可移植?
- python - 获取 OLSmodel 的摘要时的问题
- r - 检查错误--as-cran“没有名为...的包”
- bash - 如何使 git fork 匹配所有上游分支、标签、引用和对象
- c# - AutoMapper 是否有任何自定义功能来解决映射问题?
- javascript - 从道具中检索嵌套对象
- pytorch - Pytorch - 自定义 DataLoader 永远运行