Python 按多个正则表达式对数据帧列进行排序
我想按多个正则表达式订购一个数据帧。也就是说,例如在这个数据帧中Python 按多个正则表达式对数据帧列进行排序,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我想按多个正则表达式订购一个数据帧。也就是说,例如在这个数据帧中 df = pd.DataFrame({'Col1': [20, 30], 'Col2': [50, 60], 'Pol2': [50, 60]}) 在以C开头的列之前获取以p开头的列 我发现你可以用一个正则表达式进行过滤,比如 df.filter(regex = "P*") 但我不能用更多的级别来实现这一点 更新: 我想在一条指令中实现这一点,我已
df = pd.DataFrame({'Col1': [20, 30],
'Col2': [50, 60],
'Pol2': [50, 60]})
在以C开头的列之前获取以p开头的列
我发现你可以用一个正则表达式进行过滤,比如
df.filter(regex = "P*")
但我不能用更多的级别来实现这一点
更新:
我想在一条指令中实现这一点,我已经能够使用正则表达式列表并将列连接到另一个数据帧中。我相信您需要列表中正则表达式过滤的数据帧列表:
我相信您需要列表中由正则表达式过滤的数据帧列表,其中包含:
您可以通过常规赋值对列重新排序 将列导出到已排序的列表,并按其编制索引 尝试: 作为pd进口熊猫 df=pd.DataFrame{'Col1':[20,30], "Pol2":[50,60],, 'Col2':[50,60], } df=df[sorteddf.columns.to_list,key=lambda col:col.startswithP,reverse=True] printdf
您可以通过常规赋值对列重新排序 将列导出到已排序的列表,并按其编制索引 尝试: 作为pd进口熊猫 df=pd.DataFrame{'Col1':[20,30], "Pol2":[50,60],, 'Col2':[50,60], } df=df[sorteddf.columns.to_list,key=lambda col:col.startswithP,reverse=True] printdf
看看我几秒钟前做的更新。非常感谢。anyway@Angelo-不确定是否理解,但我不能用更多的级别。你能解释更多吗?看看我几秒钟前做的更新。非常感谢。anyway@Angelo-不确定是否理解,但我不能用更多的级别。注意:如果您需要更复杂的正则表达式,您可以根据需要修改密钥注意:如果您需要更复杂的正则表达式,您可以根据需要修改密钥
reg = ['^P','^C']
df1 = pd.concat([df.filter(regex = r) for r in reg], axis=1)
print (df1)
Pol2 Col1 Col2
0 50 20 50
1 60 30 60