【发布时间】:2020-12-24 15:44:34
【问题描述】:
我有两个数据帧 X 和 Y(都有一个时间索引)。 两者都有一个交集,但也有另一个不一定包含的索引。
如何获取时间索引,相交和两者row is only-NaNs?
可重现:
import numpy as np, pandas as pd
X = pd.DataFrame( {"a":[1,np.nan,3,4,5,np.nan,7,8,100,9,np.nan,np.nan,12,13,14,15],"b":[1,np.nan,3,4,5,6,7,8,101,9,np.nan,np.nan,12,13,np.nan,15]},
index =pd.DatetimeIndex(["2019-07-18 08:51:00", "2019-07-18 08:52:00","2019-07-18 08:53:00","2019-07-18 08:54:00","2019-07-18 08:55:00","2019-07-18 08:56:00","2019-07-18 08:57:00","2019-07-18 08:58:00","2019-07-18 08:58:30","2019-07-18 08:59:00","2019-07-18 09:00:00","2019-07-18 09:01:00","2019-07-18 09:02:00","2019-07-18 09:03:00","2019-07-18 09:04:00","2019-07-18 09:05:00" ]))
Y = pd.DataFrame({"c":[0,1,np.nan,3,4,5,6,7,8,9,np.nan,np.nan,12,13,14,15,16],"d":[0,1,np.nan,3,4,5,6,7,8,9,np.nan,np.nan,12,13,14,np.nan,16]},
index =pd.DatetimeIndex(["2019-07-18 08:50:00","2019-07-18 08:51:00", "2019-07-18 08:52:00","2019-07-18 08:53:00","2019-07-18 08:54:00","2019-07-18 08:55:00","2019-07-18 08:56:00","2019-07-18 08:57:00","2019-07-18 08:58:00","2019-07-18 08:59:00","2019-07-18 09:00:00","2019-07-18 09:01:00","2019-07-18 09:02:00","2019-07-18 09:03:00","2019-07-18 09:04:00","2019-07-18 09:05:00","2019-07-18 09:06:00" ]))
# expected result: pd.DatetimeIndex(['2019-07-18 08:52:00', '2019-07-18 09:00:00', '2019-07-18 09:01:00'])
编辑: 这有效:
intersection_X_Y = X.index.intersection(Y.index)
result = X.loc[intersection_X_Y].isnull().all(1) & Y.loc[intersection_X_Y].isnull().all(1)
print("result",result [result ].index)
【问题讨论】:
标签: python pandas numpy dataframe indexing