我想计算一个timedelta
的mean
和standard deviation
的一个timedelta
银行从一个dataframe
和两列如下。当我运行代码(如下所示)时,会出现以下错误:
pandas.core.base.DataError: No numeric types to aggregate
我的数据帧:
bank diff
Bank of Japan 0 days 00:00:57.416000
Reserve Bank of Australia 0 days 00:00:21.452000
Reserve Bank of New Zealand 55 days 12:39:32.269000
U.S. Federal Reserve 8 days 13:27:11.387000
我的代码:
means = dropped.groupby('bank').mean()
std = dropped.groupby('bank').std()
您需要将
timedelta
转换成一些数值,例如int64
通过values
转换成int64
最准确的值,因为转换成ns
是timedelta
的数值表示:另一种解决方案是通过^{} 将值转换为
seconds
,但这样做不太准确:无需来回转换
timedelta
。Numpy和pandas可以以更快的运行时间无缝地为您完成这项任务。使用dropped
DataFrame
:Pandas
mean()
和其他聚合方法支持numeric_only=False
参数。在这里找到:Aggregations for Timedelta values in the Python DataFrame
相关问题 更多 >
编程相关推荐