2017-04-09 10 views
0

インデックス11000の日付のデータセットがあります。私は日付で作られた1つの列だけで2番目のデータセットを持っています。2つのデータフレームの交差を維持する方法

私は、第1のデータセットの行を第2のデータセットに含まれる日付で保持したいだけです。

ex. 
[In] DataSet1 
[Out] 
        1   2   3   4   5 
2019-04-19   NaN   NaN   NaN   NaN   NaN 
2019-04-20   NaN   NaN   NaN   NaN   NaN 
2019-04-21   apple  NaN   NaN   NaN   NaN 
2019-04-22   NaN   NaN   peer  NaN   NaN 
2019-04-23   NaN   car   NaN   NaN   NaN 
2019-04-24   NaN   NaN   NaN   yellow  NaN 
2019-04-25   NaN   NaN   NaN   NaN   NaN 

[In] DataSet2 
[Out] 
0 2019-04-21 
1 2019-04-23 

は私が

[In] "Intersection" (which is not really an intersection) btween the 2 datasets. 
[Out] 
        1   2   3   4   5 
2019-04-21   apple  NaN   NaN   NaN   NaN  
2019-04-23   NaN   car   NaN   NaN   NaN 

再び欲しい、第二のデータセットは、単にいくつかの日付を含みます。

ありがとうございました!

+0

はこれを試してみてください: 'DataSet1.loc [ (DataSet2がシリーズの場合)または 'DataSet1.loc [DataSet2 ['column_name']]'もし 'DataSet2'がDataFrameならば – MaxU

答えて

1

両方dtypeが同じで、その後のコメントでMaxUを指摘してlocで選択した場合は、最初に確認することができます。

print (DataSet1.index.dtype) 
datetime64[ns] 

print (DataSet2['col'].dtype) 
datetime64[ns] 

print (DataSet2.columns) 
Index(['col'], dtype='object') 


print (DataSet2) 
     col 
0 2019-04-21 
1 2019-04-23 

df = DataSet1.loc[DataSet2['col']] 
print (df) 
       1 2 3 4 5 
2019-04-21 apple NaN NaN NaN NaN 
2019-04-23 NaN car NaN NaN NaN 

intersectionのもう一つの解決策:

idx = DataSet1.index.intersection(DataSet2['col']) 
print (idx) 
DatetimeIndex(['2019-04-21', '2019-04-23'], dtype='datetime64[ns]', freq=None) 

df = DataSet1.loc[idx] 
print (df) 
       1 2 3 4 5 
2019-04-21 apple NaN NaN NaN NaN 
2019-04-23 NaN car NaN NaN NaN 
関連する問題