2017-11-23 12 views
1

同じ長さでなければならない2つのデータフレームがあります。日付が同じでないデータフレームの行を削除する

最後の2日間の株価とデータフレームには、価格、日付、および金額が近い列があります。

日付を等しくないデータフレームのすべての行を削除して、データをプロットして比較することができます。

誰かが私の問題を助けてくれますか?

おかげで、よろしく

176 5338.8 2017-11-23T07:40:00.000000Z  81 
177 5336.7 2017-11-23T07:45:00.000000Z  176 
178 5342.8 2017-11-23T07:50:00.000000Z  109 
179 5339.8 2017-11-23T07:55:00.000000Z  114 
180 5342.8 2017-11-23T08:00:00.000000Z  285 
181 5337.4 2017-11-23T08:05:00.000000Z  363 
182 5333.9 2017-11-23T08:10:00.000000Z  174 

150行対180行。私は日付がお互いに等しくないすべての行を削除したいと思います。

143 3549.3 2017-11-23T07:35:00.000000Z  14 
144 3547.3 2017-11-23T07:40:00.000000Z  4 
145 3548.3 2017-11-23T07:45:00.000000Z  8 
146 3551.3 2017-11-23T07:50:00.000000Z  5 
147 3548.3 2017-11-23T07:55:00.000000Z  9 
148 3550.0 2017-11-23T08:00:00.000000Z  42 
149 3548.0 2017-11-23T08:05:00.000000Z  89 
150 3548.0 2017-11-23T08:10:00.000000Z  13 
同じ日付の
+0

使用して、内部結合:(= '日付'、どのように= 'インナー' に関するDF2、)df1.merge –

+0

df1またはdf2、またはその両方に行をドロップしますか? –

+0

私はいつも違いがどこにあるのか分からないので、どちらもベストです。どちらも同じですが、重要なのは唯一のものです – Marcel

答えて

1

使用numpy.union1d、その後boolean indexingisinとでフィルタ:

a = np.union1d(df1['date'], df1['date']) 
print (a) 
['2017-11-23T07:40:00.000000Z' '2017-11-23T07:45:00.000000Z' 
'2017-11-23T07:50:00.000000Z' '2017-11-23T07:55:00.000000Z' 
'2017-11-23T08:00:00.000000Z' '2017-11-23T08:05:00.000000Z' 
'2017-11-23T08:10:00.000000Z'] 

df1 = df1[df1['date'].isin(a)] 
print (df1) 
      a       date b 
176 5338.8 2017-11-23T07:40:00.000000Z 81 
177 5336.7 2017-11-23T07:45:00.000000Z 176 
178 5342.8 2017-11-23T07:50:00.000000Z 109 
179 5339.8 2017-11-23T07:55:00.000000Z 114 
180 5342.8 2017-11-23T08:00:00.000000Z 285 
181 5337.4 2017-11-23T08:05:00.000000Z 363 
182 5333.9 2017-11-23T08:10:00.000000Z 174 

df2 = df2[df2['date'].isin(a)] 
print (df2) 
      a       date b 
144 3547.3 2017-11-23T07:40:00.000000Z 4 
145 3548.3 2017-11-23T07:45:00.000000Z 8 
146 3551.3 2017-11-23T07:50:00.000000Z 5 
147 3548.3 2017-11-23T07:55:00.000000Z 9 
148 3550.0 2017-11-23T08:00:00.000000Z 42 
149 3548.0 2017-11-23T08:05:00.000000Z 89 
150 3548.0 2017-11-23T08:10:00.000000Z 13 
関連する問題