问题描述
看起来我想将动物列中的多行转换为单行。但是,只有当它们满足序列号和小写字母时才有条件。之后,它重新启动一个索引成为连续的
Animal
0 Bulldog
1 hatcet
3 Parrot
7 Carrot
8 Jack Dog
9 Kanggaroo
10 helma
我想要实现的是
Animal
0 Bulldog hatcet
1 Parrot
2 Carrot
3 Jack Dog
4 Kanggaroo helma
任何人都可以通过这个?
解决方法
我们可以通过首先使用 str.contains
创建一个布尔掩码,然后对掩码进行累积和来识别连续块。然后将这些连续块上的列 Animal
分组并使用 join
b = df['Animal'].str.contains(r'^[A-Z]').cumsum()
df[['Animal']].groupby(b,as_index=False).agg(' '.join)
Animal
0 Bulldog hatcet
1 Parrot
2 Carrot
3 Jack Dog
4 Kanggaroo helma