首页 > 解决方案 > 熊猫:如何使用字符串使用字符串进行分组

问题描述

我有一个带有换行符的 csv 文件,我读入了 pandas 数据框。

 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 完成,但我不知道如何进行。我怎样才能做到这一点?

谢谢

兰加

标签: pythonpandaspandas-groupby

解决方案


使用contains这些单元格包含标记并将其分配给另一列,然后我们这样做ffill,并选择 col not equal 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

推荐阅读