Как получить 1-й вхождение значения в столбце в файле данных Python - PullRequest
0 голосов
/ 28 июня 2018

У меня есть датафрейм Python Pandas как:

     name     date         value
0    XYZ    01-01-2018    No Value
1    XYZ    02-01-2018    No Value
2    XYZ    03-01-2018     A
3    XYZ    04-01-2018     A
4    XYZ    05-01-2018     B
5    XYZ    06-01-2018     B
6    XYZ    07-01-2018     A

Я хочу получить только те строки, в которых данные в столбце значений встречаются в первый раз или A, или B, и пропустить последовательные повторяющиеся значения.

Например, в этом случае A встречается в первый раз с индексом 2, затем B встречается с индексом 4, снова A встречается с индексом 6. Короче говоря, я хочу получить строки с индексами 2,4 и 6.

Любая помощь будет оценена

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

, вероятно, не лучшее решение, но это должно работать:

import pandas as pd
df = pd.DataFrame({"a": [1, 2, 3, 4, 5], "b": [0, 2, 0, 1, 2]})
df.groupby("b").first()
0 голосов
/ 28 июня 2018

Кажется, вам может понадобиться pd.Series.notnull + pd.Series.shift:

res = df[df['value'].notnull() & (df['value'] != df['value'].shift())]

print(res)

  name        date value
2  XYZ  03-01-2018     A
4  XYZ  05-01-2018     B
6  XYZ  07-01-2018     A
0 голосов
/ 28 июня 2018

isin с shift:

df.loc[(df.value.isin(['A', 'B'])) & (df.value != df.value.shift())]

  name        date value
2  XYZ  03-01-2018     A
4  XYZ  05-01-2018     B
6  XYZ  07-01-2018     A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...