我有一个测试数据框长这样:
data = pd.DataFrame([[0,0,0,3,6,5,6,1],[1,1,1,3,4,5,2,0],[2,1,0,3,6,5,6,1],[3,0,0,2,9,4,2,1]], columns=["id", "sex", "split", "group0Low", "group0High", "group1Low", "group1High", "trim"])
grouped = data.groupby(['sex','split']).mean()
stacked = grouped.stack().reset_index(level=2)
stacked.columns = ['group_level', 'mean']
接下来,我想将group_level分离出来,并堆叠这两个新因素:
stacked['group'] = stacked.group_level.str[:6]
stacked['level'] = stacked.group_level.str[6:]
这一切都很好。我的问题是:
如果我的列名称(“group0Low”,“group0High”,“group1Low”,“group1High”)彼此有些共同点,则可以正常工作。
如果我的列名称更像是“routeLow”,“routeHigh”,“landmarkLow”,“landmarkHigh”怎么办?在这种情况下,我该如何使用str来分割group_level?
这个问题与此处发布的问题类似:Slice/split string Series at various positions
不同之处在于,我的所有列子名称都不同且没有共性(而在其他帖子中,每个名称中都有组或类)。是否有一个正则表达式字符串或其他方法可以用来进行堆叠?