2017-11-28 11 views
1

私は3つの異なるカラム(date_1、date_2、date_3)を取得するという異なるクエリを実行しています。私は1つのDataframeでそれらを必要とするので、私はそのためにconcat関数を使用しています。私はこれを得る:パンダでインデックス作成するカラムに値を追加する

resultado = pd.concat([date_1, date_2, date_3], axis=1) 

    date_1   date_2   date_3 
01/01/2009 0:00 01/01/2009 00:00 01/01/2009 0:00 
01/01/2009 0:10 01/01/2009 00:10 01/01/2009 0:10 
01/01/2009 0:20 01/01/2009 00:20 01/01/2009 0:30 
01/01/2009 0:30 01/01/2009 00:30 01/01/2009 0:40 
01/01/2009 0:40 01/01/2009 00:50 01/01/2009 0:50 
01/01/2009 0:50    NaT    NaT 

しかし、私が欲しい/これが何かのようなものです。あなたはDatetimeIndexでデータを揃えることができ

 date_1   date_2   date_3 
01/01/2009 0:00 01/01/2009 00:000 01/01/2009 0:00 
01/01/2009 0:10 01/01/2009 00:10 01/01/2009 0:10 
01/01/2009 0:20 01/01/2009 00:20    NaT 
01/01/2009 0:30 01/01/2009 00:30 01/01/2009 0:30 
01/01/2009 0:40    NaT 01/01/2009 0:40 
01/01/2009 0:50 01/01/2009 00:50 01/01/2009 0:50 
+0

事は、我々は 'DATE_1、日付2が必要である、インデックスを持つdate_3'は、私たちはどのようなものと考えることができますそれは可能です。 – Dark

答えて

0

指数に応じた列の値を追加します。

#get all columns in list 
sers = [date_1['date_1'], date_2['date_2'], date_3['date_3']] 
#convert data to datetime 
sers = [pd.to_datetime(x) for x in sers] 
#create DatetimeIndex for align Series, remove NaNs rows and last remove Index 
resultado = pd.concat([x.to_frame().set_index(x) for x in sers], axis=1) 
resultado = resultado.dropna(how='all').reset_index(drop=True) 
print (resultado) 
       date_1    date_2    date_3 
0 2009-01-01 00:00:00 2009-01-01 00:00:00 2009-01-01 00:00:00 
1 2009-01-01 00:10:00 2009-01-01 00:10:00 2009-01-01 00:10:00 
2 2009-01-01 00:20:00 2009-01-01 00:20:00     NaT 
3 2009-01-01 00:30:00 2009-01-01 00:30:00 2009-01-01 00:30:00 
4 2009-01-01 00:40:00     NaT 2009-01-01 00:40:00 
5 2009-01-01 00:50:00 2009-01-01 00:50:00 2009-01-01 00:50:00 
+0

ありがとう、それは動作します! – Sorginah

関連する問題