Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 减去时间戳的列会产生TypeError_Python_Pandas_Multidimensional Array_Dataframe_Series - Fatal编程技术网

Python 减去时间戳的列会产生TypeError

Python 减去时间戳的列会产生TypeError,python,pandas,multidimensional-array,dataframe,series,Python,Pandas,Multidimensional Array,Dataframe,Series,我有一个像这样的数据框 dt1 dt2 0 2011-09-12 09:57:03.839546 2011-09-12 09:51:29.332474 1 2011-09-12 09:57:03.841132 2011-09-12 09:55:29.332774 2 2011-09-12 10:57:28.581049 2011-09-12 10:55:29.332774 3 2011-09-12 10:57:28.5

我有一个像这样的数据框

                      dt1               dt2
0 2011-09-12 09:57:03.839546  2011-09-12 09:51:29.332474
1 2011-09-12 09:57:03.841132  2011-09-12 09:55:29.332774
2 2011-09-12 10:57:28.581049  2011-09-12 10:55:29.332774
3 2011-09-12 10:57:28.581049  2011-09-12 10:55:29.332774
4 2011-09-12 10:57:28.582636  2011-09-12 10:55:29.332774
条目的类是pandas.tslib.Timestamp。当我这样做的时候

df['dt1'][:]-df['dt2'][:]
我很好,但是这个

df['dt1']-df['dt2']
失败,出现以下错误

TypeError: Argument 'values' has incorrect type (expected numpy.ndarray, got Series)
为什么会发生这种情况?我如何修复它?

转换为datetime64可以修复它

df['dt1'] = pd.to_datetime(df['dt1'])
df['dt2'] = pd.to_datetime(df['dt2'])

df['dt1']-df['dt2']

0   00:05:34.507072
1   00:01:34.508358
2   00:01:59.248275
3   00:01:59.248275
4   00:01:59.249862
转换为datetime64可以解决此问题

df['dt1'] = pd.to_datetime(df['dt1'])
df['dt2'] = pd.to_datetime(df['dt2'])

df['dt1']-df['dt2']

0   00:05:34.507072
1   00:01:34.508358
2   00:01:59.248275
3   00:01:59.248275
4   00:01:59.249862

这是预期的行为。后面的一个是算术运算。那个么,我怎样才能减去时间戳的列呢?我的答案和良好的减法是否符合你们的需要?是的,谢谢。接受。这是预期的行为。后面的一个是算术运算。那个么,我怎样才能减去时间戳的列呢?我的答案和良好的减法是否符合你们的需要?是的,谢谢。接受。但是为什么我可以得到0天?为什么它没有显示关于差异的更详细的信息?因为您已经编写了df['dt1']-df['dt1'],所以您的问题中有一个错误。我已经修改了答案来计算dt1和dt2之间的差异。但是为什么我得到0天呢?为什么它没有显示关于差异的更详细的信息?因为您已经编写了df['dt1']-df['dt1'],所以您的问题中有一个错误。我修改了答案以计算dt1和dt2之间的差异。