在Pandas中打印相应的列值

时间:2016-08-24 07:57:49

标签: python datetime pandas dataframe timedelta

我有一个包含3个参数的表"日期","时间"和"价值"。我想在此表中添加一个新列,其值对应于" Time"每隔 10分钟后

Image

我虽然为了方便而创建了一个包含Seconds的新列。

现在我想要一个新列,假设" x"这将有第一个vlaue和值对应于"时间"仅在10分钟后。在这种情况下我们能做些什么?

1 个答案:

答案 0 :(得分:0)

IIUC您可以先var node = document.getElementById("fruits1")删除dateshours,添加10 Min,然后转换为miliseconds并划分1000:< / p>

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