我有一个包含一些文本索引的数据帧,其中包含要复制到列表中的必要信息。我不知道文本信息具体如何(单词总是变化),但我知道在索引中的位置:'point.subclase.optimum.R31.完成'.R31是我想写在列表中的值,所以我知道这个文本总是不同的,介于point.subclase.optimum.和.done之间。我试过:info_list = []for col in df.columns: if ('point.subclase.optimum.' in col) and ('.done' in col): info_list.append(col)但是该脚本只是为我提供了列表中的整个索引。有谁知道如何解决它?
1 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
使用Series.str.extract
与转义,因为特殊的正则表达式字符,然后删除可能的缺失值,如果Series.dropna
不匹配,最后将输出转换为列表:\.
df = pd.DataFrame({'a':range(3)}, index=['point.subclase.optimum.R31.done',
'point.subclase',
'point.subclase.optimum.R98.done'])
print (df)
a
point.subclase.optimum.R31.done 0
point.subclase 1
point.subclase.optimum.R98.done 2
L = (df.index.str.extract(r'point\.subclase\.optimum\.(.*)\.done', expand=False)
.dropna()
.tolist())
print (L)
['R31', 'R98']
添加回答
举报
0/150
提交
取消