Панды фильтруют по определенным строкам, а затем объединяют 2 столбца - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть фрейм данных с create_date и create_time.Create_date - это дата, а create_time - это дата и время.

По некоторым причинам в будущем есть некоторые create_times, но дата создания все еще выглядит точной.

например, create_date: 2019-03-29

create_time: 2035-02-26 18: 29: 59

Я хочу отфильтровать только те строки, которые мне интересны:

df.loc[df['create_time'] >= '2019-09-23','create_time']

А потом я хочу расчесать2 столбца, как показано ниже

pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))

Есть ли простой способ сделать что-то вроде этого:

df.loc[df['create_time'] >= '2019-09-23','create_time'] = pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))

Проблема с приведенным выше утверждением состоит в том, что право не применило фильтр

Я получаю ошибку для строки, которая должна быть исключена из выбора.Я не могу применить запрос ко всему фрейму данных, так как некоторые create_times имеют значение NaT.

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете попробовать с mask

con1=df['create_time'] >= '2019-09-23'
v1=pd.to_datetime(df['create_date'].astype(str) + ' ' + df['create_time'].dt.time.astype(str))
df.create_time=df.create_time.mask(con1,v1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...