如何对列表进行子集化,然后截断其元素 (Pandas)
How to subset a list, then truncate its elements (Pandas)
我有以下列表,名称为 my_List
:
['SAMNY5PAP01_Max',
'SAMNY5PAP02_Max',
'SAMNY5PAP03_Max',
'SAMNY5PAP01_Avg',
'SAMNY5PAP02_Avg',
'SAMNY5PAP03_Avg',
'DVR_PUC_Max_Sum_SAMNY5PAP01',
'DVR_PUC_Max_Sum_SAMNY5PAP02',
'DVR_PUC_Max_Sum_SAMNY5PAP03',
'DVR_PUC_Max_Count_SAMNY5PAP01',
'DVR_PUC_Max_Count_SAMNY5PAP02',
'DVR_PUC_Max_Count_SAMNY5PAP03',
'DVR_PUC_Average_Sum_SAMNY5PAP01',
'DVR_PUC_Average_Sum_SAMNY5PAP02',
'DVR_PUC_Average_Sum_SAMNY5PAP03',
'DVR_PUC_Average_Count_SAMNY5PAP01',
'DVR_PUC_Average_Count_SAMNY5PAP02',
'DVR_PUC_Average_Count_SAMNY5PAP03']
我愿意:
a) 只取 my_List
列表的前三个元素(例如
['SAMNY5PAP01_Max', 'SAMNY5PAP02_Max', 'SAMNY5PAP03_Max']
b) 然后,只取 '_Max'
之前的元素部分(例如 ['SAMNY5PAP01', 'SAMNY5PAP01', 'SAMNY5PAP01']
上面'a'步我知道怎么做了,如下:
my_List = my_List[0:3]
这个returns我:
['SAMNY5PAP01_Max', 'SAMNY5PAP02_Max', 'SAMNY5PAP03_Max']
我怎样才能完成上面的步骤 'b'?
谢谢!
如果你想摆脱 '_Max'
你可以试试这个:
my_List = [x[:-4] for x in my_List[:3]]
或者这样:
my_List = [x.split("_")[0] for x in my_List[:3]]
如果有其他可能性(如 _MaxLength
等)会导致索引解决方案失效,您可以使用正则表达式来适应这些情况。
import re
[st.group(0) for st in [re.search(r'.*[^_Max]', el) for el in my_List[:3]]]
我有以下列表,名称为 my_List
:
['SAMNY5PAP01_Max',
'SAMNY5PAP02_Max',
'SAMNY5PAP03_Max',
'SAMNY5PAP01_Avg',
'SAMNY5PAP02_Avg',
'SAMNY5PAP03_Avg',
'DVR_PUC_Max_Sum_SAMNY5PAP01',
'DVR_PUC_Max_Sum_SAMNY5PAP02',
'DVR_PUC_Max_Sum_SAMNY5PAP03',
'DVR_PUC_Max_Count_SAMNY5PAP01',
'DVR_PUC_Max_Count_SAMNY5PAP02',
'DVR_PUC_Max_Count_SAMNY5PAP03',
'DVR_PUC_Average_Sum_SAMNY5PAP01',
'DVR_PUC_Average_Sum_SAMNY5PAP02',
'DVR_PUC_Average_Sum_SAMNY5PAP03',
'DVR_PUC_Average_Count_SAMNY5PAP01',
'DVR_PUC_Average_Count_SAMNY5PAP02',
'DVR_PUC_Average_Count_SAMNY5PAP03']
我愿意:
a) 只取 my_List
列表的前三个元素(例如
['SAMNY5PAP01_Max', 'SAMNY5PAP02_Max', 'SAMNY5PAP03_Max']
b) 然后,只取 '_Max'
之前的元素部分(例如 ['SAMNY5PAP01', 'SAMNY5PAP01', 'SAMNY5PAP01']
上面'a'步我知道怎么做了,如下:
my_List = my_List[0:3]
这个returns我:
['SAMNY5PAP01_Max', 'SAMNY5PAP02_Max', 'SAMNY5PAP03_Max']
我怎样才能完成上面的步骤 'b'?
谢谢!
如果你想摆脱 '_Max'
你可以试试这个:
my_List = [x[:-4] for x in my_List[:3]]
或者这样:
my_List = [x.split("_")[0] for x in my_List[:3]]
如果有其他可能性(如 _MaxLength
等)会导致索引解决方案失效,您可以使用正则表达式来适应这些情况。
import re
[st.group(0) for st in [re.search(r'.*[^_Max]', el) for el in my_List[:3]]]