Python 熊猫:如何使用字符串进行分组使用字符串

Python 熊猫:如何使用字符串进行分组使用字符串,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我有一个带有新行分隔符的csv文件,我将它读入一个数据帧 df = pd.dataframe("data.csv", delimiter="\n", header=None) 这个返回类似这样的值 marker1 10 20 30 marker2 40 50 marker3 60 70 80 90 100 ..... 我想生成一个数据帧,如下所示 marker1 10 marker1 20 marker1 30 marker2 40 marker2 5

我有一个带有新行分隔符的csv文件,我将它读入一个数据帧

 df = pd.dataframe("data.csv", delimiter="\n", header=None)
这个返回类似这样的值

 marker1
 10
 20
 30
 marker2
 40
 50
 marker3
 60
 70
 80
 90
 100
 .....
我想生成一个数据帧,如下所示

 marker1 10
 marker1 20
 marker1 30
 marker2 40
 marker2 50
 marker3 60
 marker3 70
 marker3 80
 marker3 90
 marker3 100
我认为groupby可以做到这一点,但我不知道如何继续。我该怎么做

谢谢

Ranga

使用和

使用和


使用
contains
并将这些单元格包含标记分配给其他列,然后执行
ffill
,并选择col not equals to New col

df['New']=df.loc[df.col.str.contains('marker'),'col']
df.New=df.New.ffill()
df=df.query('New!=col')
df
    col      New
1    10  marker1
2    20  marker1
3    30  marker1
5    40  marker2
6    50  marker2
8    60  marker3
9    70  marker3
10   80  marker3
11   90  marker3
12  100  marker3

使用
contains
并将这些单元格包含标记分配给其他列,然后执行
ffill
,并选择col not equals to New col

df['New']=df.loc[df.col.str.contains('marker'),'col']
df.New=df.New.ffill()
df=df.query('New!=col')
df
    col      New
1    10  marker1
2    20  marker1
3    30  marker1
5    40  marker2
6    50  marker2
8    60  marker3
9    70  marker3
10   80  marker3
11   90  marker3
12  100  marker3

@LostInTheFrequencyDomain仅从
cond
检索
False
值。然后,
.index
检索cond所在的索引False@LostInTheFrequencyDomain仅从
cond
中检索
False
值。然后,
.index
检索cond为False的索引