2016-11-25 9 views
2

私はIDと日付のデータフレームを持っています。別の列の部分的複製を作成するにはどうすればよいですか?

id date 
1 2010-03-09 00:00:00 
1 2010-05-28 00:00:00 
1 2010-10-12 00:00:00 
1 2010-12-10 00:00:00 
1 2011-07-11 00:00:00 

私は1つの列の日付、および他の列内の隣接する次の日付を持っているように、データフレームを再構築したいと思います。下記を参照

id date     date2 
1 2010-03-09 00:00:00 2010-05-28 00:00:00 
1 2010-05-28 00:00:00 2010-10-12 00:00:00 
1 2010-10-12 00:00:00 2010-12-10 00:00:00 
1 2010-12-10 00:00:00 2011-07-11 00:00:00 

どのようにすればいいですか?

答えて

2
df['date2'] = df.date.shift(-1)  # use shift function to shift index of the date 
             # column and assign it back to df as a new column 

df.dropna()       # the last row will be nan for date2, drop it if you 
             # don't need it 
# id     date    date2 
#0 1 2010-03-09 00:00:00 2010-05-28 00:00:00 
#1 1 2010-05-28 00:00:00 2010-10-12 00:00:00 
#2 1 2010-10-12 00:00:00 2010-12-10 00:00:00 
#3 1 2010-12-10 00:00:00 2011-07-11 00:00:00 
+0

ああ、それは上品な –

2

Psidomが既にswaggyの答えを持っているように...しかし、私はそれですでにだったのでルックス:

df_new = df.iloc[:-1] 
df_new['date2'] = df.date.values[1:] 
+0

うーんで、いやそれは私が私にあまりにも調理するものです自分も同様です。 –

関連する問題