【问题标题】:How get Timeindex, where Two Dataframes both have only NaNs in Row?如何获得 Timeindex,其中两个 Dataframes 在 Row 中都只有 NaN?
【发布时间】: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


    【解决方案1】:

    试试这个

    i_X = X.index[X.join(Y).isna().all(1)]
    
    Out[20]:
    DatetimeIndex(['2019-07-18 08:52:00', '2019-07-18 09:00:00',
                   '2019-07-18 09:01:00'],
                  dtype='datetime64[ns]', freq=None)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      相关资源
      最近更新 更多