为了将DescribeResult(nobs=10,minmax=(0,9),mean=4.5,variance=9.166666666666666,skewness=0.0,kurtosis=-1.2242424242424244)转换为dictionary,以便可以持久化为MongoDB,我计划使用以下命令进行转换:
from scipy import stats
a = np.arange(10)
stats_result = stats.describe(a)
print(stats_result)
stats_dict = {}
stats_dict['nobs'] = stats_result[0]
stats_dict['minmax'] = stats_result[1]
stats_dict['mean'] = stats_result[2]
stats_dict['variance'] = stats_result[3]
stats_dict['skewness'] = stats_result[4]
stats_dict['kurtosis'] = stats_result[5]
print(stats_dict)打印的内容:
DescribeResult(nobs=10, minmax=(0, 9), mean=4.5, variance=9.166666666666666, skewness=0.0, kurtosis=-1.2242424242424244)
{'nobs': 10, 'minmax': (0, 9), 'mean': 4.5, 'variance': 9.166666666666666, 'skewness': 0.0, 'kurtosis': -1.2242424242424244}有没有一种更干净、更惯用的方法来将结果转换为字典,而不是根据值索引位置显式地将每个值分配给字典?
dict(stats_result)返回错误:
TypeError: cannot convert dictionary update sequence element #0 to a sequence发布于 2020-09-09 02:11:20
要从两个列表中创建一个字典,请对它们进行zip:
In [3]: dict(zip(['a','b','c'],[1,2,3]))
Out[3]: {'a': 1, 'b': 2, 'c': 3}
In [4]: {k:v for k,v in zip(['a','b','c'],[1,2,3])}
Out[4]: {'a': 1, 'b': 2, 'c': 3}发布于 2020-09-09 01:28:17
尝试使用for循环-
Keys = ['nobs', 'minmax', 'mean', 'variance', 'skewness',
'kurtosis']
count = 0
#
for key in Keys:
stats_dict[key] = stats_result[count]
count += 1
print(stats_dict)https://stackoverflow.com/questions/63798567
复制相似问题