计算pandas数据帧中两个col之间的时间差(以秒为单位)

时间:2017-07-14 06:56:52

标签: pandas

我有一个示例pandas数据帧,如下所示。

string input = "abcd 00001 pqr 003 xyz abc 0009";

double dummy;
var result = input.Split().GroupBy(i => double.TryParse(i, out dummy)).ToList();

var textArray = result.Where(i => !i.Key).SelectMany(i=> i).ToArray();
var numberArray = result.Where(i => i.Key).SelectMany(i => i.ToList()).ToArray();

我想计算最高时间值的时差并用较低的时间值减去。

CID        T1                    Name     T2                        delta 
101    1900-01-01 12:31:58.193    Tom     1900-01-01 12:31:57.193   00:00:01.000 
102    1900-01-01 12:31:57.193    John    1900-01-01 12:31:57.193 00:00:00.000 
103    1900-01-01 12:44:03.098    Mary    1900-01-01 12:34:31.956 -1days+23:50:28.858000 
104    1900-01-01 12:44:03.111    Rocky   1900-01-01 12:31:57.172 -1days+23:47:54.061000 

我也想要delta值,即以秒为单位的时差。

预期产出:

i.e if t2 > t1 :
  delta = t2 -t1
else: if t1>t2 :
 delta = t1 -t2 

1 个答案:

答案 0 :(得分:0)

对日期时间列的绝对差异使用.dt.total_seconds()

In [877]: (df.T1 - df.T2).abs().dt.total_seconds()
Out[877]:
0      1.000
1      0.000
2    571.142
3    725.939
dtype: float64