#python #python-3.x #pandas #dataframe #data-cleaning
Вопрос:
Мой вопрос немного сбивает с толку, поэтому лучше показать, как выглядят мои входные и выходные данные. Я пытался немного поработать над этим, но каждый раз я захожу в тупик.
Ввод:
A | B |
---|---|
1 | a |
2 | a |
3 | b |
4 | b |
5 | c |
6 | c |
7 | a |
8 | a |
9 | b |
10 | c |
Выход:
A | B |
---|---|
1 | a |
3 | b |
5 | c |
7 | a |
9 | b |
10 | c |
Ответ №1:
Вы должны собираться вместе, как itertools.groupby
здесь. Чтобы сделать что-то подобное в pandas, проверьте, не равен ли следующий элемент элементу curr. Мы можем использовать pd.Series.shift
pd.Series.ne
pd.Series.cumsum
.
grps = df['B'].ne(df['B'].shift()).cumsum()
df.groupby(grps).first()
A B
B
1 1 a
2 3 b
3 5 c
4 7 a
5 9 b
6 10 c