Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按多个正则表达式对数据帧列进行排序_Python_Regex_Pandas_Dataframe - Fatal编程技术网

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