Получение минимального значения для нескольких столбцов даты и времени в Pandas - PullRequest
4 голосов
/ 08 апреля 2020

У меня есть следующий фрейм данных

df = pd.DataFrame({
    'DATE1': ['NaT', 'NaT', '2010-04-15 19:09:08+00:00', '2011-01-25 15:29:37+00:00', '2010-04-10 12:29:02+00:00', 'NaT'],
    'DATE2': ['NaT', 'NaT', 'NaT', 'NaT', '2014-04-10 12:29:02+00:00', 'NaT']})
df.DATE1 = pd.to_datetime(df.DATE1)
df.DATE2 = pd.to_datetime(df.DATE2)

, и я хотел бы создать новый столбец с минимальным значением в двух столбцах (игнорируя значения NaT) следующим образом:

df.min(axis=1)
0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
5   NaN
dtype: float64

Если я удаляю информацию о часовом поясе (+00:00) из каждой отдельной ячейки, то желаемый результат получается следующим образом:

0                   NaT
1                   NaT
2   2010-04-15 19:09:08
3   2011-01-25 15:29:37
4   2010-04-10 12:29:02
5                   NaT
dtype: datetime64[ns]

Почему добавление информации о часовом поясе нарушает функцию? В моем наборе данных есть часовые пояса, поэтому мне нужно знать, как их удалить в качестве обходного пути.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Это хороший вопрос, здесь должна быть ошибка с часовым поясом

df.apply(lambda x : np.max(x),1)
0                         NaT
1                         NaT
2   2010-04-15 19:09:08+00:00
3   2011-01-25 15:29:37+00:00
4   2014-04-10 12:29:02+00:00
5                         NaT
dtype: datetime64[ns, UTC]
1 голос
/ 08 апреля 2020

Одд. Похоже, ошибка. Вы можете сохранить формат часового пояса и использовать его.

df.apply(lambda x: x.min(),axis=1)
0                         NaT
1                         NaT
2   2010-04-15 19:09:08+00:00
3   2011-01-25 15:29:37+00:00
4   2010-04-10 12:29:02+00:00
5                         NaT
dtype: datetime64[ns, UTC]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...