Python中TimeDelta列的总和

Python中TimeDelta列的总和,python,pandas,sum,timedelta,Python,Pandas,Sum,Timedelta,以前也有人提出过类似的问题 但当我尝试所有可用的解决方案时,它给了我错误 代码: 错误: 溢流器 1#打印总和(数据['Activity_Duration'],datetime.timedelta()) 2导入操作员 ---->3打印减少(operator.add,数据['Activity\u Duration']) 溢出错误:太长,无法转换 我是否遗漏了一些东西,或者我们能否提出一个更具可扩展性的解决方案 信息:我的数据有436746行 我正在使用8G的机器,数据大小为650MB,我认为您需要

以前也有人提出过类似的问题

但当我尝试所有可用的解决方案时,它给了我错误

代码:

错误:

溢流器

1#打印总和(数据['Activity_Duration'],datetime.timedelta())
2导入操作员
---->3打印减少(operator.add,数据['Activity\u Duration'])

溢出错误:太长,无法转换

我是否遗漏了一些东西,或者我们能否提出一个更具可扩展性的解决方案

信息:我的数据有436746行

我正在使用8G的机器,数据大小为650MB,我认为您需要:

样本:

import pandas as pd

start = pd.to_datetime('2015-02-24')
end = pd.to_datetime('2016-04-25')
rng = pd.date_range(start, end, freq='6D')

start = pd.to_datetime('2015-02-26')
end = pd.to_datetime('2016-04-27')
rng1 = pd.date_range(start, end, freq='6D')

df = pd.DataFrame({'Date1': rng, 'Date2': rng1})  

df['Activity_Duration'] = df.Date2 - df.Date1
print (df)
        Date1      Date2  Activity_Duration
0  2015-02-24 2015-02-26             2 days
1  2015-03-02 2015-03-04             2 days
2  2015-03-08 2015-03-10             2 days
3  2015-03-14 2015-03-16             2 days
4  2015-03-20 2015-03-22             2 days
5  2015-03-26 2015-03-28             2 days
6  2015-04-01 2015-04-03             2 days
7  2015-04-07 2015-04-09             2 days
8  2015-04-13 2015-04-15             2 days
9  2015-04-19 2015-04-21             2 days
...
...


print (df['Activity_Duration'].sum())
144 days 00:00:00
如果需要在
浮动中输出:

import numpy as np

df['Activity_Duration'] = (df.Date2 - df.Date1) / np.timedelta64(1, 'D')
print (df)
        Date1      Date2  Activity_Duration
0  2015-02-24 2015-02-26                2.0
1  2015-03-02 2015-03-04                2.0
2  2015-03-08 2015-03-10                2.0
3  2015-03-14 2015-03-16                2.0
4  2015-03-20 2015-03-22                2.0
...
...
...

print (df['Activity_Duration'].sum())
144.0
另一个解决方案是-output是
int

print (df['Activity_Duration'].dt.days.sum())
144
.

我认为您需要:

样本:

import pandas as pd

start = pd.to_datetime('2015-02-24')
end = pd.to_datetime('2016-04-25')
rng = pd.date_range(start, end, freq='6D')

start = pd.to_datetime('2015-02-26')
end = pd.to_datetime('2016-04-27')
rng1 = pd.date_range(start, end, freq='6D')

df = pd.DataFrame({'Date1': rng, 'Date2': rng1})  

df['Activity_Duration'] = df.Date2 - df.Date1
print (df)
        Date1      Date2  Activity_Duration
0  2015-02-24 2015-02-26             2 days
1  2015-03-02 2015-03-04             2 days
2  2015-03-08 2015-03-10             2 days
3  2015-03-14 2015-03-16             2 days
4  2015-03-20 2015-03-22             2 days
5  2015-03-26 2015-03-28             2 days
6  2015-04-01 2015-04-03             2 days
7  2015-04-07 2015-04-09             2 days
8  2015-04-13 2015-04-15             2 days
9  2015-04-19 2015-04-21             2 days
...
...


print (df['Activity_Duration'].sum())
144 days 00:00:00
如果需要在
浮动中输出:

import numpy as np

df['Activity_Duration'] = (df.Date2 - df.Date1) / np.timedelta64(1, 'D')
print (df)
        Date1      Date2  Activity_Duration
0  2015-02-24 2015-02-26                2.0
1  2015-03-02 2015-03-04                2.0
2  2015-03-08 2015-03-10                2.0
3  2015-03-14 2015-03-16                2.0
4  2015-03-20 2015-03-22                2.0
...
...
...

print (df['Activity_Duration'].sum())
144.0
另一个解决方案是-output是
int

print (df['Activity_Duration'].dt.days.sum())
144

.

我仍然希望像您的第一个建议一样在timedelta中输出,但我现在收到了此错误----------------------------------------------------------------------ValueError Traceback(最近一次调用最后一次)in()2 35; import operator 3#print reduce(operator.add,data['Activity\u Duration'])--->4个数据['Activity\u Duration'].sum()ValueError:timedelta操作溢出我认为这意味着输出的数字太大。返回第二个建议是什么?总和更多的是
106751
,这是timedelta的最大值-okk,我理解,谢谢。那么有什么方法可以完成此计算吗?我认为解决方案是我的第二个建议或
df['Activity\u Duration'].dt.days.sum()(operator.add,数据['Activity\u Duration'])--->4个数据['Activity\u Duration'].sum()ValueError:timedelta操作溢出我认为这意味着输出的数字太大。返回第二个建议是什么?总和更多的是
106751
,这是timedelta的最大值-okk,我理解,谢谢。那么有什么方法可以完成此计算吗?我认为解决方案是我的第二个建议或
df['Activity\u Duration'].dt.days.sum()