Панды: вычитание столбцов datetime64 с дублирующимися индексами вызывает проблемы с выравниванием

Я действительно почесал голову от этого.

По-видимому, если у вас есть фрейм данных с дублирующимися индексами, вычитание столбцов, состоящих из даты и времени, нарушает выравнивание, тогда как вычитание обычных столбцов int - нет. Означает ли "вычитание" что-то другое в этом контексте?

In [371]: import numpy as np

In [372]: import pandas as pd

In [373]: sec = np.datetime64(1, 's')

In [374]: df = pd.DataFrame({'a' : [sec, sec], 'b' : [0,0]}, index = [0,0])

In [375]: df['b'] - df['b']
Out[375]:
0    0
0    0
Name: b, dtype: int64

Пока все хорошо, вот чего я ожидал.

In [376]: df['a'] - df['a']
Out[376]:
0   0 days
0   0 days
0   0 days
0   0 days
Name: a, dtype: timedelta64[ns]

Какие???

То же самое происходит, даже если сами значения col не являются дубликатами.

In [377]: df['a'].iloc[0] = np.datetime64(50, 's')

In [378]: df['a'] - df['a']
Out[378]:
0            00:00:00
0   -00:00:00.1000000
0    00:00:00.1000000
0            00:00:00
Name: a, dtype: timedelta64[ns]

0 ответов

Другие вопросы по тегам