Python 我如何过滤所有后跟xyz的行,并将它们存储在单独的数据帧中

Python 我如何过滤所有后跟xyz的行,并将它们存储在单独的数据帧中,python,pandas,Python,Pandas,我有一个如下所示的数据框 输入 0某物1 1 xyz 2一些事情1 3 abc 4一些事情1 5 xyz 6一些事情1 7 xyz 输出 col1 0某物1 4一些事情1 6 something1创建df的新子集,过滤col1上需要的值 df_output = df[df['col1']== 'something1'] 或者,如果您只需要一个带有分组值的df,那么 data = {'col':["something1" , "something2" , "something1" ,

我有一个如下所示的数据框

输入

0某物1
1 xyz
2一些事情1
3 abc
4一些事情1
5 xyz
6一些事情1
7 xyz

输出

col1    
0某物1
4一些事情1

6 something1

创建df的新子集,过滤col1上需要的值

df_output = df[df['col1']== 'something1']
或者,如果您只需要一个带有分组值的df,那么

data = {'col':["something1"
, "something2"
, "something1"
, "something3"
, "something1"
, "something2"
, "something1"
,"something2"]}

df = pd.DataFrame(data)

df.sort_values(by='col')


col
0   something1
2   something1
4   something1
6   something1
1   something2
5   something2
7   something2

这并不能满足OP需要的解决方案。OP需要“something1”,然后是“something2”,如果您只想对值进行排序,那么
df.sort\u values(by='col')
我不想对值进行排序,我想得到列中“something2”前面的值。
data = {'col':["something1"
, "something2"
, "something1"
, "something3"
, "something1"
, "something2"
, "something1"
,"something2"]}

df = pd.DataFrame(data)

df.sort_values(by='col')


col
0   something1
2   something1
4   something1
6   something1
1   something2
5   something2
7   something2