2016-08-24 4 views
1

私は3つのパラメータ "日付"、 "時間"と "値"を持つテーブルがあります。私は毎回10分の後に "時間"に対応する値を持つこのテーブルに新しい列を追加したいと思います。パンダの列の対応する値を印刷

Image

I容易にするために秒を使用して新しい列を作成するけれども。

ここで、最初のvlaueを持つ「x」と、10分後に「Time」に対応する値を仮定します。この場合、私たちは何ができますか?

答えて

0

IIUCあなたが最初milisecondsに変換し、1000を分割し、その後、10 Minを追加し、subによってdateshoursを削除することができます。

df = pd.DataFrame({'Time': ['08:01:29:12','08:03:29:12','08:05:29:12'], 
        'Date':['1/2/2016','1/2/2016','1/2/2016']}) 
df['Date'] = pd.to_datetime(df.Date) 
df['Time'] = pd.to_datetime(df.Time, format='%H:%M:%S:%f') 

df['new'] = df.Time.sub(df.Time.values.astype('<M8[h]') + 
      pd.offsets.Minute(10)).astype('timedelta64[ms]')/1000 

print (df) 

     Date     Time  new 
0 2016-01-02 1900-01-01 08:01:29.120 689.12 
1 2016-01-02 1900-01-01 08:03:29.120 809.12 
2 2016-01-02 1900-01-01 08:05:29.120 929.12 

または:

df['new'] = df.Time.sub(df.Time.values.astype('<M8[h]') + 
      pd.to_timedelta('00:10:00')).astype('timedelta64[ms]')/1000 

print (df) 
     Date     Time  new 
0 2016-01-02 1900-01-01 08:01:29.120 689.12 
1 2016-01-02 1900-01-01 08:03:29.120 809.12 
2 2016-01-02 1900-01-01 08:05:29.120 929.12 
関連する問題