Как извлечь определенные строки в панд

У меня есть пандас DF, который является:

df['timestamp']
26600          58161.0
26628    58161.0416667
26656    58161.0833333
26684        58161.125
26712    58161.1666667
26740    58161.2083333
26768         58161.25
26796    58161.2916667
26824    58161.3333333
26852        58161.375
26880    58161.4166667
26908    58161.4583333
26936          58162.0
26964    58162.0416645
26992    58162.0833333

Я хотел бы извлечь только две строки, которые заканчиваются на ".0"

Я пытался с этой командой:

df['timestamp'].str.startswith(".0", na=False)

но это возвращает:

AttributeError: 'Series' object has no attribute 'startswith'

Есть ли простой способ сделать эту работу?

Спасибо

2 ответа

Если timestamp является числовым, вы можете использовать по модулю %:

df.loc[df.timestamp % 1 == 0]

           timestamp
index           
26600    58161.0
26936    58162.0

Если это не числовое значение, вы можете сделать то же самое, но сначала конвертировать:

df.loc[df.timestamp.astype(float) % 1 == 0]

Одним из способов является сравнение ваших float серия к int версия:

df.loc[df[df['timestamp'] == df['timestamp'].astype(int)]
Другие вопросы по тегам