我真的在这个问题上摸不着头脑。
显然,如果您有一个具有重复索引的数据框,则减去包含日期时间的列会破坏对齐,而减去常规 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]