У меня есть такой DataFrame:
data = {'col1': ['A', 'B', 'B', 'A', 'B', 'C', 'B', 'B', 'B',
'A', 'C', 'A', 'B', 'C'],
'col2': ['NaN', 'comment1', 'comment2', 'NaN', 'comment3', NaN,
'comment4', 'comment5', 'comment6',
'NaN', 'NaN', 'NaN', 'comment7', 'NaN]}
frame = pd.DataFrame(data)
frame
col1 col2
A NaN
B comment1
B comment2
A NaN
B comment3
C NaN
B comment4
B comment5
B comment6
A NaN
C NaN
A NaN
B comment7
C NaN
В каждой строке с col1 == 'B' есть комментарий, который будет строкой.Мне нужно объединить комментарии и заполнить предыдущую строку (где col1! = 'B') результирующей агрегированной строкой.
Любая строка, в которой col1! = 'B' может не иметь ни одного, одного или нескольких соответствующихстроки комментариев (col1 == 'B'), которые, кажется, суть проблемы.Я не могу просто использовать fillna ('bfill') и т. Д.
Я изучил циклы iterrows (), groupby (), while и попытался построить свою собственную функцию.Но я не думаю, что полностью понимаю, как все это работает.
Готовый продукт должен выглядеть следующим образом:
col1 col2
A comment1 + comment2
B comment1
B comment2
A comment3
B comment3
C comment4 + comment5 + comment6
B comment4
B comment5
B comment6
A NaN
C NaN
A comment7
B comment7
C NaN
В конце концов я буду отбрасывать все строки, где col1== 'B', но сейчас я бы хотел оставить их для проверки.