Панды, как выбрать некоторые значения из разницы - PullRequest
0 голосов
/ 26 апреля 2018

Как выбрать значения из различий, которые лежат в определенном диапазоне?

df['timestamp'].diff() # .select(1 < x < 10)

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Если я правильно понимаю, вы можете получить исходную строку в вашем фрейме данных, где diff находится между 1 и 10 следующим образом:

df.loc[(df['timestamp'].diff() > 1) & (df['timestamp'].diff() < 10)] 

Пример:

дано df:

>>> df
   timestamp
0          8
1          4
2          1
3          5
4          3

С этими diff() значениями:

>>> df.diff()
   timestamp
0        NaN
1       -4.0
2       -3.0
3        4.0
4       -2.0

Вы можете извлечь эту строку, где diff находится в вашем диапазоне:

>>> df.loc[(df['timestamp'].diff() > 1) & (df['timestamp'].diff() < 10)]
   timestamp
3          5

Редактировать Как отмечает @Wen, использование diff() дважды не очень эффективно. Вы также можете создать маску, используя diff(), и использовать эту маску для извлечения строк по строкам:

msk = df.diff()
df.where((msk > 1) & (msk < 10))
0 голосов
/ 26 апреля 2018

Использование loc + lambda

df['timestamp'].diff().loc[lambda x : (x>1) &(x<10)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...