Pandas: выбрать строки с типом столбца - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть DataFrame, где столбец отметки времени содержит смешанные типы. В некоторых строках время указывается в Unix отметках времени (цифра c), в некоторых строках указывается время в виде строк в формате iso, а в остальных строках есть объекты Pandas datetime.

Есть ли способ выбрать все строки, которые имеют объект не-datetime в столбце timestamp? Я хотел бы запустить pd.to_datetime, чтобы преобразовать столбец отметки времени этих строк в объекты datetime.

Встроенный select_dtypes не выполняет то, что я хочу. Эта библиотечная функция выбирает столбцы, которые (не) имеют определенный тип, но я хочу выбрать строки, в которых заданное значение столбца (не) является указанным c типом.

Пример:

df = pd.DataFrame({
    'time': [
        Timestamp('2019-03-31 00:00:00-0400', tz='US/Eastern'),
        '2019-01-31 12:00:00-0700',
        1551000000
    ] })

Цель:

def get_not_datetime_rows(df):
    """Output the last two rows."""

1 Ответ

0 голосов
/ 13 апреля 2020

Как насчет этого (при условии, что df - это ваш DataFrame, а "Timestamp" - рассматриваемый столбец)?

from datetime import datetime
idx = df["Timestamp"].apply(lambda x: type(x) != datetime)

Затем используйте idx, чтобы нарезать ваш DataFrame

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...